GNU/Linux >> Znalost Linux >  >> Linux

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

du by neshrnoval, pokud mu předáte seznam souborů.

Místo toho nasměrujte výstup do cut a nechte awk shrnout to. Takže můžete říct:

find . -mtime +180 -exec du -ks {} \; | cut -f1 | awk '{total=total+$1}END{print total/1024}'

Všimněte si, že volba -h zobrazení výsledku ve formátu čitelném pro člověka bylo nahrazeno -k což odpovídá velikosti bloku 1 kB. Výsledek je uveden v MB (viz total/1024 výše).


@PeterT má pravdu. Téměř všechny tyto odpovědi vyvolávají příkaz (du) pro každý soubor, což je velmi náročné na zdroje a pomalé a zbytečné. Nejjednodušší a nejrychlejší způsob je tento:

find . -type f -mtime +356 -printf '%s\n' | awk '{total=total+$1}END{print total/1024}'

Proč ne tohle?

find /path/to/search/in -type f -mtime +180 -print0 | du -hc --files0-from - | tail -n 1

Linux
  1. Jak zjistit nejlepší adresáře a soubory (místo na disku) v Linuxu

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

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

  1. najít a odstranit soubor nebo složku starší než x dní

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

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

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

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

  3. Linux:pomocí funkce find vyhledejte soubory starší než <datum>