Per impostazione predefinita, du
conterà ogni file solo una volta se è collegato a più volte. Se lo esegui du -L bar
, conterà il file perché lo raggiunge solo una volta. Tuttavia, se lo esegui du -L *
, verrà conteggiato solo la prima volta che lo vede. Per esempio:
$ du -L foo bar
16K foo
4.0K bar
$ du -L bar foo
16K bar
4.0K foo
Notare che lo scambio dell'ordine degli argomenti cambia la cartella che viene segnalata come 16 KB.
È possibile forzare il du
conteggio del file due volte passando il -l
parametro.
Modificare:
I collegamenti simbolici sono un tipo speciale di file ed è necessario un passaggio aggiuntivo per seguire il collegamento. du
non seguirà i collegamenti simbolici a meno che l' -L
opzione non sia abilitata.
Un collegamento reale, d'altra parte, è fondamentalmente un file esistente in due (o più) cartelle. du
presumibilmente tiene traccia di quali file ha visto per numero di inode per evitare di contarli due volte. -l
disabilita questo comportamento.
Quindi, con just -L
, seguirà il collegamento simbolico, ma se il file di destinazione ha un numero di inode che ha già visto non verrà conteggiato di nuovo. Con solo -l
conterà conteggi duplicati, ma non seguirà collegamenti simbolici.
Se lo usi -l
e -L
insieme, seguirà entrambi i collegamenti simbolici e consentirà anche di contare i file di destinazione più di una volta.
du
voler giocare in modo intelligente qui, ma se si eseguedf -a -L bar foo
l'output è molto sbagliato (contando i 16K nella barra lasciando il foo vuoto).