Удалите папки старше 1 дня, не работающие с командой "find" - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь удалить папки резервных копий старше 1 дня (дата создания) с помощью команды поиска, но она не работает

Папка ls -l:

drwxrws---+ 2 root data 42 Mai 15 16:46 15-05-2019
drwxrws---+ 2 root data 89 Mai 16 14:19 16-05-2019

Дата создания15 Mai.

Этот cmd должен работать:

find /data/backup/VMs/centos/ -type d -mtime +1 -exec rm {} \;

Сначала я попытался посмотреть, что происходит перед удалением:

find /data/backup/VMs/centos/ -type d -mtime +1 -exec ls {} \; >> find_test.txt

Он должен написать вфайл папка, которую нужно удалить, но текстовый файл пуст.

кроме использования find, как я могу удалить эти папки, используя дату в названии?

1 Ответ

0 голосов
/ 17 мая 2019

rm обычно не печатается на стандартном выводе, однако, если происходит ошибка, он печатает на стандартную ошибку, которая также может быть перенаправлена ​​в другой файл или к тому же дублирующему дескриптору файла 2>&1

find /data/backup/VMs/centos/ -type d -mtime +1 -exec ls {} \; >> find_test.txt 2>&1

для печати имени find -print можно использовать действие, также find имеет действия -delete и -ls (что не совсем то же самое, что ls), чтобы избежать выполнения команды для каждого файла

find /data/backup/VMs/centos/ -type d -mtime +1 -print -delete >> find_test.txt 2>&1

будьте осторожны перед использованием -delete, чтобы не потерять ненужные файлы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...