Per calcolare la dimensione totale di ciascuna directory, in genere useresti `du` (uso del disco). Tuttavia, `Du` non è intrinsecamente" attraversa "nel senso di visitare ogni directory e stampare separatamente il nome e le dimensioni. Riferisce le dimensioni di ogni directory, *comprese le sue sottodirectory *, che è leggermente diversa da un attraversamento che elencherebbe esplicitamente ogni directory e le sue dimensioni indipendentemente dai suoi figli.
Ecco come è possibile ottenere un attraversamento di directory che mostra la dimensione totale di ogni directory:
usando `du` con` find`:
Questo combina `Trova` per l'attraversamento e` du` per il calcolo delle dimensioni. `Find` elenca ogni directory e` Xargs` nutre quelle directory a `du`:
`` `Bash
Trovare . -Type D -print0 | xargs -0 -i {} du -sh {}
`` `
* `Trova. -Type d -print0`:questo trova tutte le directory (`-type d`) a partire dalla directory corrente (` .`) e stampa i loro nomi separati da caratteri null (`-print0`). I caratteri null sono cruciali per la gestione dei filesseggi con spazi o caratteri speciali.
* `xargs -0 -i {} Du -sh {}`:questo prende i nomi di file separati da null da `finish` e esegue` du -sh` su ognuno. `-0` dice a` xargs` di aspettarsi input separati null, `-i {}` set `{}` come segnaposto per il nome file, `Du -sh` mostra la dimensione in un formato leggibile dall'uomo (` -h`) e solo la dimensione sommaria (non la dimensione di ogni file all'interno) `-s`.
Questo è il più vicino a un attraversamento che ti dà esplicitamente le dimensioni di ogni directory. Il comando `du` stesso non è strettamente un algoritmo di attraversamento, ma se usato con` Trova`, la combinazione esegue l'azione desiderata.
sistemi © www.354353.com