Řídké soubory jsou soubory, kterým je předem přiděleno velké množství místa, aniž by zabíraly celé množství ze souborového systému. Jsou užitečné mimo jiné pro snížení množství času a místa na disku při vytváření souborových systémů smyčky nebo obrazů velkých disků pro virtualizované hosty. Termín „řídký soubor“ se používá k označení souboru obsahujícího „díry“; na běžícím systému je snadné jej rozpoznat, protože jeho využití disku je menší než jeho velikost. Toto chování můžeme vidět pomocí /var/log/lastlog soubor.
# ls -lh /var/log/lastlog -rw-r--r--. 1 root root 286K Dec 3 04:50 /var/log/lastlog # du -sh /var/log/lastlog 12K /var/log/lastlog
Hledání řídkých souborů
Výše uvedený proces nyní dokáže identifikovat řídké soubory v systému, ale je obtížné najít všechny řídké soubory v souborovém systému nebo adresáři, zvláště když je jich mnoho. Nebojte se, v příkazu find je možnost, která nám pomůže najít všechny řídké soubory najednou. Podívejme se na příklad níže.
1. Použijte příkaz find s „%S “, abyste zjistili řídkost každého souboru.
# find /var/log -type f -printf "%S\t%p\n" # find /var/log -type f -printf "%S\t%p\n" 1 /var/log/tallylog 1.00095 /var/log/audit/audit.log.1 0.0419982 /var/log/lastlog ....
2. Hodnota zobrazená ve sloupci zcela vlevo je (BLOCK-SIZE*st_blocks / st_size ), což je normálně méně než 1,0 v případě řídkého souboru.
3. Pokud chcete najít všechny řídké soubory v systému, můžeme odfiltrovat všechny soubory s hodnotami ve sloupci zcela vlevo menším než 1.
# find / -type f -printf "%S\t%p\n" | gawk '$1 < 1.0 {print}' 0.0139994 /var/log/lastlog 0.959592 /usr/lib/locale/locale-archive ...