LINUX.ORG.RU
решено ФорумAdmin

find - не удаляются файлы

 , ,


0

2

Такой вопрос. Надо удалить логи, которые старше 30 дней. Написал такой find:

 find /var/log/ -mindepth 1 -type f -name *.log.* -o -name *.log-* -mtime +30 -delete

Заканчивается без ошибок. Смотрю в директорию - файлы не удалились. Запускаю команду без "-delete" -все файлы не тронуты.

Пробую дальше:

 find /var/log/ -mindepth 1 -type f -name *.log.* -o -name *.log-* -mtime +30 -exec rm -f {} \;

Та же хрень - файлы не удаляются. Да что же это такое?..

 find /var/log/ -mindepth 1 -type f -name *.log.* -o -name *.log-* -atime +30 -print0 | xargs -0 rm -f

Опять без результата. И ЧСХ, напрямую через rm файлы удаляются. Вот еще попробовал с -print0 -ничего не показывает, без -print все файлы выводятся. Никто не сталкивался с такими граблями?

Спасибо большое, заранее.

$ echo *.log.*
$ echo "*.log.*"
$ echo find /var/log/ -mindepth 1 -type f -name *.log.* -o -name *.log-* -mtime +30 -delete

Покажи-ка, что получается?

Kiborg ★★★ ()

+1 на квотирование шаблонов с «*»

vel ★★★★★ ()
Ответ на: комментарий от Kiborg
echo *.log.*
server.log.2015-01-19 server.log.2015-01-20 server.log.2015-01-21 server.log.2015-01-22 server.log.2015-01-23 server.log.2015-01-24 server.log.2015-01-26 server.log.2015-01-27 server.log.2015-01-28 server.log.2015-01-29 server.log.2015-01-30 server.log.2015-02-03 server.log.2015-02-04 server.log.2015-02-05 server.log.2015-02-06 server.log.2015-02-09
VNLD-XO-0A167:/var/log/xout/jboss # echo "*.log.*"
*.log.*

echo find /var/log/ -mindepth 1 -type f -name *.log.* -o -name *.log-* -mtime +30 -delete
find /var/log/ -mindepth 1 -type f -name server.log.2015-01-19 server.log.2015-01-20 server.log.2015-01-21 server.log.2015-01-22 server.log.2015-01-23 server.log.2015-01-24 server.log.2015-01-26 server.log.2015-01-27 server.log.2015-01-28 server.log.2015-01-29 server.log.2015-01-30 server.log.2015-02-03 server.log.2015-02-04 server.log.2015-02-05 server.log.2015-02-06 server.log.2015-02-09 -o -name *.log-* -mtime +30 -delete

вот.

CrownRU ()
Последнее исправление: CrownRU (всего исправлений: 1)
Ответ на: комментарий от CrownRU

не вижу экраннированых скобок.

учи бинарную арифметику

sdio ★★★★★ ()
Ответ на: комментарий от CrownRU

Оно ж очевидно что у файла server.log.2015-01-19 mtime НЕ будет больше 30. Так что перед удивлением от find, советую выполнить `stat FILE` и увидеть его mtime.

Bers666 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.