GNU/Linux >> Linux Esercitazione >  >> Linux

Differenza nel calcolo della dimensione della directory?

Ho bisogno di ottenere la dimensione della directory nel terminale per la firma. Sto usando il seguente comando:

du -s /path/to/dir

Moltiplico il risultato per la dimensione del blocco UNIX tradizionale (512 byte) e ottengo la dimensione effettiva della directory in byte. Tuttavia, la finestra di dialogo "Ottieni informazioni" del Finder mostra la dimensione leggermente inferiore a quella calcolata con il comando del terminale. E sembra che sia riproducibile su qualsiasi cartella/bundle. Cosa mi sto perdendo?

Risposta accettata:

Normalmente, du mostra informazioni sull'utilizzo del disco (da cui deriva il suo nome). Tieni presente che

disk usage != sum of file sizes

Perché ogni file occupa un numero di blocchi sul filesystem (vedi man mkfs.ext2 Per esempio). Ciò significa che solo in una situazione molto rara l'utilizzo del disco di un file è uguale alla sua dimensione effettiva, per questo la dimensione deve essere esattamente un multiplo della dimensione del blocco.

Pensa ai blocchi del filesystem come a riquadri che contengono parti di file:ciascuno può contenere una parte di un solo file.

Per la versione GNU di du , controlla il --apparent-size opzione.

Può verificarsi una situazione ancora più interessante, quando ci sono alcuni file sparsi sul file system!


Linux
  1. Limita la dimensione del caricamento dei file in NGINX

  2. Come ottenere la dimensione della directory in Linux

  3. Rimuove un collegamento simbolico a una directory

  4. Trova il file quindi cd in quella directory in Linux

  5. Esclusione della directory durante la creazione di un file .tar.gz

Come ottenere la dimensione di una directory in Linux

Linux – Scopo della directory /net?

Riduci le dimensioni del file PDF in Linux

Cheat sheet per le autorizzazioni di file/directory Linux

Ottieni il file più recente in una directory su Linux

Come elencare la dimensione di ogni file e directory e ordinare per dimensione decrescente in Bash?