2016-09-14 2 views
-5

Мне нужно удалить большие файлы в папке (wc около 2392934). Папка содержит файлы года 2015 года 2016 & я хочу удалить файлы для только 2015 года, и для этого я создал скрипт ниже: -Необходимо удалить большие файлы

echo 'going to gived path' 
cd /usr/local/nagios/var/spool/xidpe/ 
pwd 
b=$(ls -lrt | grep '2015' | awk '{print $9}') 
echo 'listen tail outcome' 
echo 'going to del' 
rm -rf $b 
exit 

, но он дает ошибку: - ./test.sh: line 10: /bin/rm: Argument list too long.

Я попытался xargs также: b=$(ls -lrt | xargs '2016' | awk '{print $9}')

дает ошибку: - xargs: 2016: No such file or directory

Есть ли какие-либо изменения должны быть сделаны в моем сценарии или любые другие способы, чтобы удалить эти файлы (только на 2015 год).

+0

является год определены в имени файла каким-то образом, или только в метках времени? – Joni

ответ

0

Если год появляется в имени файла:

find /usr/local/nagios/var/spool/xidpe/ -type f -name '*2015*' -delete

Чтобы удалить файлы, созданные до одного года до сих пор:

find /usr/local/nagios/var/spool/xidpe/ -type f -ctime +365 -delete

+0

Эта команда не дает никакого вывода. Показывать пустой экран после выполнения этой команды. Даже из корневого входа. –

+0

Именно так оно и работает: оно удаляет все файлы с этим шаблоном и ничего не говорит. Если вы хотите просмотреть список файлов заранее, запустите его сначала без «-delete». –

Смежные вопросы