Удаление файлов старше чем x лет или дней - PullRequest
0 голосов
/ 11 ноября 2018

Я загружаю огромную папку и пытался удалить старые файлы, например. файлы старше 3 лет или файлы, добавленные до определенной даты, но по некоторым причинам это приводит к удалению как новых, так и старых файлов.

Вот команды, которые я пробовал до сих пор

Команда 1

 find /home/user/uploads -maxdepth 1 -type f ! -newermt "2018-10-14 00:00:00" -exec rm -v {} \;

Эта команда удаляет все, игнорируя с! -newermt или просто - newermt

Команда 2

find /home/user/uploads -maxdepth 1 -mtime +1095 -type f -print -exec rm -i  {} \;

Результат не возвращен

Команда 3

find /home/user/uploads -type f ! -newermt "2018-10-14 00:00:00" | xargs rm 

Это вернуло ошибку "xargs: несоответствующие одинарные кавычки по умолчанию кавычки являются специальными для xargs, если вы не используете опцию -o"

Я не могу понять, что именно не так с командами .. Я работаю в системе CentOS.

1 Ответ

0 голосов
/ 12 ноября 2018

Так что после игры с командами некоторое время эта команда сработала.

find . -maxdepth 1 -type f ! -newermt "2018-10-16" -exec rm -v {} \;

Эти флаги также помогли на случай, если вы столкнетесь с такой ситуацией.

-maxdepth 1 

означает только файлы в этой папке

-newermt 

используется для файлов, измененных в эту дату или после ..

! -newermt 

используется для удаления файлов до указанной даты.

Я также добавил флаг -v, чтобы увидеть, как вывод файлов был удален.

Спасибо за всю помощь, это сэкономило мне много времени ..

...