GNU/Linux >> Znalost Linux >  >> Linux

Jak vypsat velikost každého souboru a adresáře a seřadit podle sestupné velikosti v Bash?

Jednoduše přejděte do adresáře a spusťte následující příkaz:

du -a --max-depth=1 | sort -n

NEBO přidejte -h pro lidsky čitelné velikosti a -r pro tisk větších adresářů/souborů jako první.

du -a -h --max-depth=1 | sort -hr

Zřejmě --max-depth možnost není ve verzi du pro Mac OS X příkaz. Místo toho můžete použít následující.

du -h -d 1 | sort -n


du -s -- * | sort -n

(toto nezobrazí skryté soubory (.dotfiles))

Použijte du -sm pro jednotky Mb atd. Vždy používám

du -smc -- * | sort -n

protože celkový řádek (-c ) skončí z pochopitelných důvodů na dně :)

PS:

  • Viz komentáře pro práci s dotfiles
  • Často používám např. 'du -smc /home// | sort -n |tail', abyste získali pocit, kde přesně sedí velké bity

Linux
  1. Jak přizpůsobit automatické doplňování Bash tak, aby vypisovalo soubory v jiném adresáři?

  2. Jak vypsat popisy otevřených souborů (a soubory, na které odkazují) v aktuální relaci Bash?

  3. Jak vypsat rekurzivní velikosti souborů a adresářů v adresáři?

  1. Jak rozdělit soubor a zachovat první řádek v každém z kusů?

  2. Jak získat velikost tar.gz v (MB) souboru v pythonu

  3. Co přesně je <() v bash (a =() v zsh)?

  1. The Bash ‘?

  2. Jak mohu přidat řetězec na začátek každého souboru ve složce v bash?

  3. Jak vypsat seznam otevřených deskriptorů souborů (a souborů, na které odkazují) v mé aktuální relaci bash