GNU/Linux >> Linux Esercitazione >  >> Linux

Come ottenere la dimensione fisica di un file in Linux?

ls -l ti darà la dimensione apparente del file, che è il numero di byte che un programma leggerebbe se leggesse il file dall'inizio alla fine. du ti darebbe la dimensione del file "su disco".

Per impostazione predefinita, du ti dà la dimensione del file in numero di blocchi del disco, ma puoi usare -h per ottenere invece un'unità leggibile dall'uomo. Vedi anche il manuale per du sul tuo sistema.

Nota che con du di GNU coreutil (che è probabilmente quello che hai su Linux), -b ottenere byte implica il --apparent-size opzione. Questo non è ciò che si desidera utilizzare per ottenere il numero di byte effettivamente utilizzati sul disco. Usa invece --block-size=1 o -B 1 .

Con GNU ls , puoi anche eseguire ls -s --block-size=1 sul file. Questo darà lo stesso numero di du -B 1 per il file.

Esempio:

$ ls -l file
-rw-r--r--  1 myself wheel  536870912 Apr  8 11:44 file

$ ls -lh file
-rw-r--r--  1 myself wheel   512M Apr  8 11:44 file

$ du -h file
24K    file

$ du -B 1 file
24576   file

$ ls -s --block-size=1 file
24576 file

Ciò significa che si tratta di un file da 512 MB che occupa circa 24 KB su disco. È un scarso file (principalmente zeri che non vengono effettivamente scritti su disco ma rappresentati come "buchi" logici nel file). I file sparsi sono comuni quando si lavora con file di grandi dimensioni preallocati, ad es. immagini disco per macchine virtuali o file di scambio ecc. La creazione di un file sparse è veloce, mentre riempirlo di zeri è lento (e non necessario).

Vedi anche il manuale per fallocate sul tuo sistema Linux.


Ottengo la dimensione del file in byte in questo modo:

actualsize=$(du -b "${file}" | cut -f 1)

Linux
  1. Come ottenere la dimensione della directory in Linux

  2. Come creare un file con una determinata dimensione in Linux?

  3. Come ottenere la dimensione di tar.gz nel file (MB) in python

  4. Come ottenere il percorso del file corrente (pwd) in Linux da C?

  5. Come ottenere il numero di dischi fisici in Linux?

Come ottenere la dimensione di una directory in Linux

Come aggiungere testo all'inizio del file in Linux

Come ottenere il nome del file dal percorso completo in Linux

Come trovare la dimensione totale di una directory in Linux

Come utilizzare il comando Gzip in Linux?

Come ottenere le dimensioni di file/cartelle con SSH su Linux?