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
-atime
abyste 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