Kozack
@Kozack
Thinking about a11y

Как с помощью консольной команды удалить старые файлы?

Как с помощью консольных команд удалить те файлы и подпапки которые не открывались в течении последнего месяца?
  • Вопрос задан
  • 683 просмотра
Решения вопроса 1
sfi0zy
@sfi0zy
Creative frontend developer
Linux сам по себе может хранить только время создания файла, время его последней модификации и время последнего доступа к нему (access time). С помощью find можно найти все файлы, к которым обращались более 30 дней назад и удалить, например так:
find ./mydir/* -atime +30 -delete
Но стоит отметить, что "к файлу обращались" и "его открывали в какой-то программе" - это не одно и то же, т.е. время обращения к файлу может измениться в результате других действий, которые бы вы не назвали словом "открывать".
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Примерно так (для файлов):
find -type f -atime +30 -delete

Чтобы это работало файловая система должна поддерживать atime.
Ответ написан
Комментировать
@vampire333
Удаление файлов старше N дней
$ find /dir/ -atime +N | xargs rm -f
так же:
$ find /dir/ -atime +N -delete
можно еще вот так:
$ find /dir/ -name "*.jpg" -mtime +N -exec rm -f {} \;
Ключи:
-name — искать по имени файла, при использовании подстановочных образцов параметр заключается в
кавычки.
-type — тип искомого: f=файл, d=каталог, l=ссылка (link).
-user — владелец: имя пользователя или UID.
-group — владелец: группа пользователя или GID.
-perm — указываются права доступа.
-size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).
-atime — время последнего обращения к файлу.
-ctime — время последнего изменения владельца или прав доступа к файлу.
-mtime — время последнего изменения
-newer другой_файл — искать файлы созданные позже, чем другой_файл.
-delete — удалять найденные файлы.
-ls — генерирует вывод как команда ls -dgils.
-print — показывает на экране найденные файлы.
-exec command {} \; — выполняет над найденным файлом указанную команду; обратите внимание на
синтаксис.
-ok — перед выполнением команды указанной в -exec, выдаёт запрос.
-depth — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.
-prune — используется, когда вы хотите исключить из поиска определённые каталоги.
N — количество дней.

своровано с linux-notes.org
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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