Passaggio -s
a du
limiterà l'output solo agli elementi specificati nella riga di comando.
du -sh ~
Du ti mostrerà solo i totali per cartella, non per utente.
Potrebbe funzionare se vuoi la dimensione totale di, ad esempio, /home/example_user/
e se solo quell'esempio_utente ha file in quella cartella. Se altri utenti hanno file al loro interno, questo non produrrà la dimensione di tutti i file di tua proprietà, ma la dimensione totale di tutti i file in quella cartella.
Per ottenere le informazioni per utente, puoi:
- Se hai abilitato le quote, usa questi comandi.
- Usa find per scorrere tutte le directory in cui vuoi contare i tuoi file. Usa uid per selezionare solo i tuoi file e mantieni un array associativo in awk per contare i totali.
find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk '{t+=$1}END{print t}'
- Il primo comando cerca in tutti i file e le directory in
/path/to/search/
. -type f
si assicura di selezionare solo i file, altrimenti conta anche la dimensione delle directory. (Prova a creare una cartella vuota. Probabilmente utilizzerà 4k di spazio su disco).-user username_whos_files_to_count
seleziona solo i risultati di un utente-printf "%s\n"
stamperà la dimensione.
Se esegui solo la prima parte di questo, otterrai un elenco di numeri. Quelle sono le dimensioni dei file. (Tutto il resto viene rimosso, solo la dimensione viene stampata grazie al comando %s print.)
Possiamo quindi aggiungere tutti quei numeri per ottenere un riepilogo. Nell'esempio, questo viene fatto con awk.
Per trovare tutto l'uso da parte di un utente specifico, un buon comando è:
find -user $USER -type f -exec du -chs {} +
Puoi modificare ulteriormente a seconda delle esigenze specifiche, ad esempio spesso voglio riassumere l'uso per cartella, e il seguente funziona bene:
find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +
Questo trova solo le directory su un livello, limita per utente, esclude la directory principale e stampa ogni directory e un riepilogo alla fine.