Který příkaz vytiskne velikosti všech souborů a adresářů v adresáři tmp (včetně skrytých) a seřadí je podle velikostí od
největší po nejmenší ve formátu čitelném pro člověka (např. 2 GB)?
Výstup může být následující:
file.mpg 2GB
file.avi 1.8GB
.backtup 1.7 GB (this is directory)
Zkusil jsem použít ls
a du
příkazy, ale nebyl schopen najít správné přepínače.
Přijatá odpověď:
Zde je rychlá oprava, použijte du + sort. Zkuste toto:
du -smc * | sort -n
To bude ignorovat skryté soubory, ale to je další snadná oprava:
du -smc .[^.] .??* * | sort -n
To může způsobit varování, zda jeden nebo více z výše uvedených vzorů neodpovídá souboru. První vzor .[^.]
odpovídá všem dvěma názvům souborů začínajících na . kromě .., druhého vzoru, .??*
odpovídá všem třípísmenným nebo více názvům souborů začínajících na . a * odpovídá všem souborům, které nezačínají na . Pro sofistikovanější výpisy, jako je hledání všech souborů větších než X v celém souborovém systému nebo udržování seznamu růstu souborového systému, mám nějaký skript pro vlastní potřebu, který jsem napsal a mohu ho sdílet, pokud vás to zajímá.