GNU/Linux >> Znalost Linux >  >> Linux

Hledání souborů starších než x dní v systému s odříznutým busyboxem

-mtime je standardní predikát find (na rozdíl od -delete ), ale vypadá to, že máte zkrácenou verzi busybox , kde FEATURE_FIND_MTIME funkce byla v době sestavování deaktivována.

Pokud můžete znovu sestavit busybox s povoleným, měli byste být schopni:

find . -mtime +6 -type f -exec rm -f {} +

Nebo pokud FEATURE_FIND_DELETE je také povoleno:

find . -mtime +6 -type f -delete

Pokud ne, dalšími možnostmi může být použití find -newer (za předpokladu FEATURE_FIND_NEWER je povoleno) u souboru, který je nastaven tak, aby měl jeden týden starý čas úprav.

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -newer ../ref -exec rm -f {} +

Nebo pokud -newer není k dispozici, ale sh 's [ podporuje -nt :

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -exec sh -c '
    for f do
      [ "$f" -nt ../ref ] || printf "%s\0" "$f"
    done' sh {} + |
    xargs -0 rm -f

Od man find :

-čas n

Soubor byl naposledy otevřen před n*24 hodinami. Když zjistíte, před kolika 24hodinovými obdobími byl soubor naposledy zpřístupněn, jakákoli zlomková část je ignorována, takže aby odpovídalo -atime +1, soubor musí být zpřístupněn alespoň před dvěma dny.

-ctime n

Stav souboru byl naposledy změněn před n*24 hodinami. Podívejte se na komentáře k -atime, abyste pochopili, jak zaokrouhlování ovlivňuje interpretaci časů změny stavu souboru.

V závislosti na případech použití souborů, které chcete smazat, jsou toto vaše jediné další možnosti pro find . Proč je mtime není dostupný? Jaký souborový systém používáte? Zkoumali jste nějaké další možnosti?


Linux
  1. Jak smazat všechny soubory starší než X počet dní v Linuxu?

  2. Proč Find -mtime +1 vrací pouze soubory starší než 2 dny?

  3. Jak odstranit soubory starší než N dní pomocí tmpreaper v Linuxu

  1. Hledání souborů čitelných pro člověka na unixu

  2. vypočítat celkový použitý prostor na disku soubory staršími než 180 dní pomocí funkce find

  3. Jak vytvořit tar pro soubory starší než 7 dní pomocí skriptování linuxového shellu

  1. Jak v Linuxu odstraníte soubory starší než konkrétní datum?

  2. Najděte všechny soubory starší než jedna minuta

  3. Bezvadné mazání souborů starších než 30 dní