найти + удалить файлы с форматом даты

Я нашел проблему:Мне пришлось добавить в параметры NFS fsidтак что теперь полный список выглядит так:

fsid=1,crossmnt,rw,no_root_squash,async,no_subtree_check

Дело в том, что yast здесь не предупреждает. Я мог решить проблему, потому что я запустил exportfs, а затем получил ошибку, связанную с fsid.

-2
14.01.2020, 12:18
2 ответа
d='[0123456789]'
LC_ALL=C find /var/log/sync -name "*.log.$d$d$d$d-$d$d-$d$d-$d$d" \
  -type f -mmin +59 -delete

(обратите внимание, что -mminи -deleteне являются -стандартным расширением ).

В GNU findдля удаления файлов старше 60 минут используется-mmin +59(или\( -mmin 60 -o -mmin +60 \)).

2
28.01.2020, 05:15

Я думаю, что ваше регулярное выражение не подходит. У вас есть .*\после журнала, что означает, что после журнала все в порядке, а затем число в конце. Должно быть:

find var/log/sync/ -type f -mmin +60 -regextype sed -regex '.*\.log\.[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2,3\}$' -delete

-regextype sedнеобходим, по крайней мере, на моем компьютере, чтобы включить квантификаторы, например. \{2\}.

1
28.01.2020, 05:15

Теги

Похожие вопросы