I metadati sono dati sui dati. La dimensione apparente è la dimensione dei dati che contano per l'utente ordinario del computer. Il contenuto (testo) delle lettere, delle immagini, dei video dell'utente, ecc., costituire la dimensione apparente. Questi dati non sono mantenuti arbitrariamente nel computer. I dati di dimensioni apparenti devono essere mantenuti in modo di controllo. Deve essere identificabile. Deve essere completo. Ci sono altri requisiti per questo. Alcuni dati extra sono necessari per raggiungere questi requisiti extra e questi dati extra sono i metadati.
Ricorda, c'è solo una directory in un volume. Il resto sono sotto-directory. La directory della radice dà origine a sotto-directory, che danno origine ad altre sotto-directory che scendono. Tuttavia, le sotto-directory sono generalmente chiamate directory. E così, c'è solo un albero di directory.
Quindi, "LS -s" non è utile per ottenere la dimensione di una directory. Quale comando è allora utile? - Il comando Du. "Du" sta per l'uso del disco. Stampa l'uso del disco della directory.
Questo articolo spiega le diverse caratteristiche del comando Du in Linux, che fornisce i diversi modi del programmatore per conoscere le dimensioni delle directory e le loro sotto-directory. Bash è la shell utilizzata per i campioni di codice di questo articolo.
Contenuto dell'articolo
Du senza opzione o argomento
La directory di lavoro attuale è la directory in cui l'utente sta attualmente lavorando. Il prompt mostra normalmente la directory di lavoro corrente. Digitando Du senza alcuna opzione e argomento, come così:
du
e quindi premendo il tasto Invio visualizzerà l'utilizzo del disco per tutte le sotto-directory della directory di lavoro corrente. Visualirà queste informazioni per il sotto-albero dell'attuale directory di lavoro. Un punto al display rappresenta la directory di lavoro corrente.
Ogni percorso del sotto-albero è rappresentato in una linea, al display. Ogni riga inizia con le dimensioni della directory (che è cognome nel percorso). Il display potrebbe essere qualcosa di simile:
8 ./dir1/dir2/dir3/dir4
12 ./DIR1/DIR2/DIR3
16 ./DIR1/DIR2
20 ./dir1
Si noti che non è chiaro se la dimensione è in byte o kilobyte o megabyte o gigabyte. Kilobyte di simbolo, k significa 1024 byte; Megabytes of Symbol, M significa 1.048.576 byte; Gigabytes of Symbol, G significa 1.073.741.824 byte. Per indicare i multipli, l'opzione -H (switch) dovrebbe essere utilizzata, come segue:
du -h
Il display sembrerebbe quindi così:
8.0k ./dir1/dir2/dir3/dir4
12K ./DIR1/DIR2/DIR3
16K ./DIR1/DIR2
20k ./dir1
Quando viene utilizzata l'opzione -h, si dice che le dimensioni siano in una forma leggibile.
Nota: con l'opzione -all, il comando DU fornirà anche l'utilizzo del disco per i file; Tuttavia, l'utilizzo del disco per i file non verrà affrontato in questo articolo.
Dimensioni di altre directory
Un tipico percorso assoluto per un volume Linux è il seguente:
/Home/John/Dirone/Dirtwo/DirThree/Dirfour
Il primo / è la directory di radice. Questa directory ha sotto-directory immediate, inclusa la home directory. La home directory ha la directory dell'utente. Se il nome dell'utente è John, allora può nominare la directory dell'utente, John. La directory dell'utente è identificata da ~. Quindi, l'utente può utilizzare il comando "cd ~" per raggiungere la sua directory da qualsiasi directory. Dirone è una directory creata dall'utente. L'utente può anche creare altre directory a questo livello. Dirtwo, Dirthree e Dirfour sono sotto-directory delle loro directory precedenti, create dall'utente.
L'utente può conoscere le dimensioni di qualsiasi altra directory e le sue sottodirectory (sotto-albero) da qualsiasi directory, aggirando il percorso assoluto come argomento. Ad esempio, se è necessario l'utilizzo del disco,
/Home/John/Dirone/Dirtwo
allora il comando sarebbe:
Du -h/Home/John/Dirone/Dirtwo
O
Du -h ~/dirone/dirtwo
dove ~ rappresenta la directory dell'utente.
Per utilizzare un percorso relativo, l'utente deve già essere nella directory genitore corrispondente. Ad esempio, se il prompt viene visualizzato,
John@host: ~/dirone $
Significa che l'utente è alla directory,/home/John/dirone, quindi il seguente comando darà lo stesso risultato del comando sopra:
Du -h Dirtwo
I percorsi sarebbero ancora relativi. Per visualizzare le stesse informazioni per la directory corrente, utilizzare nessun argomento o utilizzare il punto.
Questo schema può essere usato per ottenere le dimensioni di una sola directory, l'ultima in un percorso (preceduto dal percorso). È possibile ottenere le dimensioni di una directory nel mezzo di un percorso - vedi "Exclude = pattern" di seguito.
Somma totale
È possibile produrre una grande dimensione totale di tutte le directory coinvolte. Per la situazione di cui sopra, il comando sarebbe:
Du -h - -total
dimensione apparente
La dimensione apparente è generalmente più piccola dell'uso del disco. Tuttavia, in alcune situazioni, la dimensione apparente è maggiore dell'uso del disco; Motivo - vedi più tardi. Il comando per ottenere le dimensioni apparenti per il percorso relativo sopra sarebbe:
DU -H -Apparent Size Dirtwo
Massimo profondità
Con -max -depth = 0, Du stampa le dimensioni della sola directory di lavoro attuale; Con Du -max-Depth = 1, Du stampa le dimensioni dell'attuale directory di lavoro e le dimensioni di tutte le sue sotto-directory di primo livello; con -max-depth = 2, Du stampa le dimensioni dell'attuale directory di lavoro e le dimensioni di tutte le sue sotto-directory di primo livello e di tutte le sue sotto-directory di secondo livello; Con -max-depth = 3, Du stampa le dimensioni dell'attuale directory di lavoro e tutte le sue sotto-directory di primo livello, e tutte le sue sotto-directory di secondo livello e di tutte le sue sotto-directory di terzo livello; Questo continua con un valore crescente di massimo. Un esempio del suo uso è:
Du -h - -max -depth = 2
Il comando sudo
Una delle directory con le sue sotto-directory nella directory della radice è var. Se i tipi dell'utente
Du -h /var
e le presse entrano, si renderà conto che il permesso è negato per alcune directory. Cioè, non può conoscere le dimensioni di alcune directory. L'autorizzazione viene negata perché l'utente non è il superutente. Il superuser ha il privilegio di vedere le dimensioni (utilizzo del disco) di quelle directory. Quindi, affinché l'utente acquisisca quel privilegio, deve usare il comando sudo come segue:
sudo du -h /var
Se la shell chiede all'utente la sua password, l'utente deve digitare la password e premere Invio. Con il comando sudo, l'utente ordinario (programmatore) può vedere le dimensioni di tutte le directory nella directory var e directory simili.
Escluse le voci per dimensioni
L'opzione "-hreshold = size" non consentirà directory di elenco le cui dimensioni sono inferiori alla dimensione. Per il percorso,
/Home/John/Dirone/Dirtwo/DirThree/Dirfour
Con il prompt in "John@host: ~ $", allora
Du -h --Threshold = 12k Dirone
Laddove 12k significa 12 kilobyte, non visualizzerà la linea per qualsiasi directory il cui utilizzo del disco è inferiore a 12k.
-escludere = pattern
Questa opzione e valore possono omettere le righe di directory che l'utente non desidera nell'elenco.
Per omettere la linea per l'ultima directory, dirfo del percorso
/Home/John/Dirone/Dirtwo/DirThree/Dirfour
Il comando dovrebbe essere:
Du -h --exclude = dirone/dirtwo/dirthree/dirfour dirone
Il risultato sarà qualcosa di simile,
4.0k DiRone/Dirtwo/Dirthree
8.0k DiRone/Dirtwo
12k dirone
Nota: le dimensioni non hanno incluso la dimensione della directory dell'ultimo livello (dirfour) del percorso.
Per avere solo le dimensioni delle directory di profondità superiore e dei loro sotto-alberi, non hanno le directory di profondità più basse nell'opzione. Quindi con il comando,
Du -h --exclude = dirone/dirtwo/dirthree Dirone
L'output sarà qualcosa di simile,
4.0k DiRone/Dirtwo
8k dirone
Nota: le dimensioni hanno escluso le dimensioni delle directory delle leva inferiori dell'albero.
Considera di nuovo, il collegamento assoluto,
/Home/John/Dirone/Dirtwo/DirThree/Dirfour
Il seguente comando otterrà l'utilizzo del disco solo della directory dirtwo, che è una directory all'interno del percorso. Il comando è:
Du -h --exclude =/home/john/dirone/dirtwo/*/home/john/dirone/dirtwo
L'argomento ha tutte le directory precedenti fino a quella in questione. Il valore di esclusione ha tutte le directory precedenti, che terminano con *, subito dopo quella in questione. * significa tutte le sotto-directory a quel livello (e i loro sotto-alberi). Il risultato sarà qualcosa di simile,
5.0k/home/john/dirone/dirtwo
Conclusione
Cercare di conoscere le dimensioni di una directory con il comando "LS -s" è fuorviante. Con esso, si ottengono solo i metadati della directory. Per conoscere l'uso del disco di una directory, il comando DU dovrebbe essere utilizzato. Se utilizzati con l'opzione -h, le dimensioni delle directory sono leggibili. La dimensione apparente può essere ottenuta utilizzando l'opzione di dimensioni apparenti. Senza alcuna opzione e argomento, il comando DU mostra semplicemente le dimensioni di tutte le sottodirectory della directory corrente, incluso quello della directory corrente. L'argomento a "du" è il percorso, che può iniziare dalla radice. Le opzioni e alcuni dei loro valori decidono esattamente quali directory sono affrontate. Il comando sudo fornisce i privilegi di superuser utente ordinari per impostazione predefinita.