Snažím se smazat všechny soubory a složky v /tmp dir, které jsou starší než jeden den.
Vím, že mám smazat všechny soubory a složky, které musím udělat
rm -rf *
Ale nejsem si jistý, jak jinak najdu všechny soubory a složky starší než jeden den, abych je smazal a vložil tam cron.
Přijatá odpověď:
Nejprve použijte find pro výběr těchto souborů:
find /tmp -mmin +1440
najde soubory, které byly změněny před více než 1440 minutami. (Existuje možnost použít dny místo minut, ale zaokrouhluje se nahoru a +1 bude bohužel znamenat 2 dny nebo více. Viz upozornění níže).
Zkuste to, a pokud jste spokojeni, že to najde správné soubory, smažte je najednou:
find /tmp -mmin +1440 -delete
Viz man find pro další možnosti (čas poslední změny stavu, čas přístupu).
Oznámení o použití -mtime +1 :
V člověku najít
Je tam uvedeno:
-mtime n
Data souboru byla naposledy upravena před n*24 hodinami.
Ale také se tam píše:
Podívejte se na komentáře pro
-atimeabyste pochopili, jak zaokrouhlování ovlivňuje
interpretaci časů úprav souboru.Komentáře pro
-atimeřekni:Když zjistíte, před kolika 24hodinovými obdobími byl soubor naposledy
zpřístupněn, jakákoli zlomková část je ignorována, aby odpovídala -atime +1 ,
soubor musí být zpřístupněn alespoň před dvěma dny.
Jinými slovy, -mtime může počítat pouze v jednotkách 24 hodin nebo jeden den, každý až do -mtime +1 znamená to přesně více než jeden den alespoň o jeden den (tj. dva dny+)
-mmin na druhou stranu umí počítat v minutách. Pokud je tedy důležitá přísná přesnost, pak -mmin +1440 ( 1440 minut =1 den ) lze použít místo -mtime +1