Come elencare le dimensioni di file ricorsive di file e directory in una directory?


50

Come posso elencare tutti i file in una directory e le loro dimensioni ricorsive?

---modificare

Voglio vedere le dimensioni 'arrotolate' alle directory principali nella directory elencata. Non voglio vedere le directory secondarie o i loro contenuti o dimensioni.


1
Vuoi dire che vuoi vedere la dimensione totale (somma) di tutti i file in una cartella, come fare clic con il tasto destro su una cartella sul desktop e selezionare 'Proprietà'?
— Pavlos G.,

Stai cercando un software che ti aiuti a trovare file di grandi dimensioni o qualcosa per ottenere un albero di file (comprimibile)?
— Lekensteyn,

Ciao @Pavlos G - Intendo la somma per ciascuna delle directory nella directory in cui mi trovo attualmente - non la somma per la directory generale.
— falco

@JG - Controlla il mio aggiornamento ;-)
— Pavlos G.

Risposte:


53

Immagino che il modo più semplice sia digitando ls -l, o ls -lhche fornirà le dimensioni del file in formato leggibile (KB, MB, ecc.).

Se "ricorsivamente" significa elencare tutte le cartelle successive, ad esempio:

/ foo /
/ foo / bar / ....

Quindi dovresti anche aggiungere un parametro R, come ls -lRols -lhR

Ulteriori informazioni per lspossono essere trovate digitandoman ls

Aggiornare:

Il seguente comando, come proposto da Lekensteyn, probabilmente farà il lavoro:

du -h --max-depth=1 <folder>

-hè per la lettura umana
--apparent-sizeè un altro modo per visualizzare le dimensioni, come già detto
--max-depthè il livello di sottocartelle che si desidera scendere.


Cosa usare per la massima profondità? -1?
— dylanh724,

61
apt-get install ncdu

inserisci qui la descrizione dell'immagine

È anche interattivo, quindi se si desidera controllare una sottocartella solo SU, GIÙ e Invio.


Proprio quello che stavo cercando. Grazie mille!
— Mathlight,

Forse il consiglio software più sorprendente che abbia mai ricevuto
— SomethingSomething

questa dovrebbe essere la risposta approvata
— dvdmn

30

Per ottenere la dimensione totale di una directory e di tutti i bambini

du -hs directory/*

Mi piacerebbe il livello successivo da quello - le dimensioni ricorsive di tutti i bambini di primo livello.
— falco

1
Modificherò la mia risposta. Devi usare la directory du -h / *
— Richard Holloway il

17

Guarda anche tree. Non è installato per impostazione predefinita ma è i repository.

Esempio:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

Altre opzioni sono disponibili nella pagina man.


Le dimensioni devono essere mostrate?
— falco

JG: La -s mostra le dimensioni.
— Richard Holloway,

1
Mostra la dimensione del record della directory anziché la dimensione della directory completa.
— Steven Lu,

-hmostra le dimensioni in modo leggibile dall'uomo, ad estree -s
— Eric Wang il

15

Dal momento che non menzionate specificamente la necessità di una soluzione basata su terminali, penso che baobab aka Disk Usage Analyzer non sia presente nell'elenco.

È installato in Ubuntu per impostazione predefinita e fa esattamente quello che vuoi in una bella interfaccia utente grafica con la possibilità di eseguire il drill down della gerarchia di directory.

Oltre a visualizzare un elenco di directory con le loro dimensioni, mostra anche un grafico ad anelli o treemap di utilizzo del filesystem, che è estremamente utile per visualizzare le directory che occupano più spazio.

baobab Disk Usage Analyzer


7

Una soluzione terminale è il ducomando:

du --all --human-readable --apparent-size

(stenografia: du -ah --apparent-size)

duvisualizza l'utilizzo del disco per ciascun file e directory. Le opzioni spiegate:

  • --all, -a- mostra anche le dimensioni dei file, non solo le directory
  • --human-readable, -h- mostra le dimensioni in un formato leggibile dall'uomo, ad esempio 10K(10 kilobyte), 10(10 byte)
  • --apparent-size - mostra le dimensioni effettive del file, non le dimensioni utilizzate dal disco.

Volevo solo i bambini di primo livello
— falco

2
@hawkeye per il 1 ° livello che puoi usare--max-depth=1
— nikoskip

4
@nikoskip bel consiglio! Anche bello sapere che la stenografia --max-depth=1può essere abbreviata -d1.
— Lekensteyn,

come ottenere tutti questi in un ordine
— decrescente

come posso visualizzare i contenuti e svuotare: / dev / sda5 ext4 430G 381G 27G 94% / il mio laptop ha meno di 1 mese ed è così pieno che non ha senso
— kRazzy R

2

Questo sembra fare il trucco quando sono coinvolti i simlink.

ls -LRlh

la risposta data non mi ha fornito i dettagli per i simlink (ls -lhR), i numeri elencati accanto non corrispondevano alla giusta dimensione di ciascuno dei valori. La mia risposta mi ha dato una gerarchia con una struttura ad albero definita e la risposta corretta .... O ti riferisci ad un'altra risposta votata?
— Mulki,

Voto negativo ritirato, votato a favore. Si prega di modificare e mettere il commento in risposta ... Grazie per la spiegazione. ;-)
— Fabby

1

Per ottenere un elenco ordinato metti tutto in MB e ordina:

du -m * | sort -n

In alternativa, utilizzare uno strumento come DiskReport per generare un report dell'albero del disco completo.


1

Un'altra soluzione terminale con finde ordinamento (per dimensione file, colonna 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh

Questo non mostra la dimensione della directory.
— Muru,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.