Я действительно ужасно умею программировать или писать сценарии, но у меня есть несколько машин на базе Linux, Ubuntu, Debian и т. Д. В определенных местах я хотел бы запустить сценарий, который удаляет файлы через 30 дней. У меня довольно хорошее представление о том, как это сделать используйте crontab -e, но меня сбивает с толку язык сценариев.
Вот пример того, с чем я работаю ..
Пока я вручную удаляю такие файлы ..
rm -r ./filename.wav
http://server.lorentedford.com/41715/
Я полагаю, что реальный вопрос: возможно ли это сделать? Другая половина проблемы заключается в том, что даты их создания хранятся где-то ls -l не показывает дату создания только в последний раз, когда она была изменена.
Я заметил несколько отрицательных отзывов об этом посте, но понимаю разочарование от преподавания языка ..
Хорошо, я понял, что забыл добавить самую важную часть этого уравнения, и это было то, что chmod 775 запускается в этих папках каждую минуту .. Поскольку технически это меняет вещи, разве это не сбрасывает -mtime?
2 ответа
UNIX имеет только последнее изменение, последнее изменение (включая последнее изменение, но также изменение прав собственности и прав доступа) и даты последнего доступа в своей файловой системе, дата создания отсутствует. Команда "find -type f -mtime -30." предоставит вам список файлов, которые были изменены за последние 30 дней.
В упомянутом выше сообщении «Как удалить файлы старше X часов» есть ответ. Просто используйте -mtime +<days number>
в команде find
. Вы также можете попробовать -atime
или -ctime
в зависимости от ваших реальных потребностей.
Похожие вопросы
Связанные вопросы
Новые вопросы
linux
ВНИМАНИЕ: Все вопросы по Linux должны быть связаны с программированием; те, которые не будут закрыты. Используйте этот тег, только если ваш вопрос касается программирования с использованием API-интерфейсов Linux или поведения, специфичного для Linux, а не только потому, что вы запускаете свой код в Linux. Если вам нужна поддержка Linux, вы можете попробовать https://unix.stackexchange.com или сайт Stack Exchange конкретного дистрибутива Linux, например https://askubuntu.com или https://elementaryos.stackexchange.com/.