Як я можу видалити всі файли в папці, до якої не було доступно протягом певного часу?


14

Я хотів би запустити роботу за нічний крон, що видаляє всі файли в папці, до якої не було доступно протягом тижня або більше. Який найефективніший спосіб зробити це в баші?


2
findможе фільтрувати на основі аніме. "Правильність" atime, noatimeщонайменше, залежить від конфігурації (див. ).

Відповіді:


20

Ви хочете findінструмент .

find folder -depth -type f -atime +7 -delete

(Це буде видалити всі файли ( тільки регулярні ті , ні труби, спеціальні пристрої, каталоги, символічні посилання) в цій папці і все підкаталоги (рекурсивно) , де останній раз доступу є більше ніж 7 днів тому.)


6
Ви можете додати -type fтуди, щоб переконатися, що він видаляє лише файли, а не цілі каталоги.
Шадур

3

Можливо, ви захочете перевірити, tmpwatchщо можна поставити на роботу з кроном. Не потрібно прокручувати власні find. На RHEL це в tmpwatchRPM.


Це, безумовно, більш елегантне рішення, але я віддаю перевагу портативності find.
bloudermilk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.