W jakich okolicznościach ls -lh
suma jest mniejsza niż suma poszczególnych plików? Na przykład:
$ ls -lh /var/lib/nova/instances/_base
total 100G
-rw-rw-r-- 1 nova nova 4.3M 2012-02-14 14:07 00000001
-rw-rw-r-- 1 nova nova 5.7M 2012-02-14 14:07 00000002
-rw-rw-r-- 1 nova nova 42G 2012-03-08 15:24 1574bddb75c78a6fd2251d61e2993b5146201319.part
-rw-rw-r-- 1 libvirt-qemu kvm 24M 2012-02-14 14:07 77de68daecd823babbb58edb1c8e14d7106e83bb_sm
-rw-r--r-- 1 libvirt-qemu kvm 65G 2012-03-02 12:43 bd307a3ec329e10a2cff8fb87480823da114f8f4
-rw-rw-r-- 1 libvirt-qemu kvm 160G 2012-02-24 16:06 ephemeral_0_160_None
-rw-rw-r-- 1 libvirt-qemu kvm 80G 2012-02-24 22:38 ephemeral_0_80_None
-rw-r--r-- 1 libvirt-qemu kvm 10G 2012-02-24 22:37 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f
-rw-r--r-- 1 libvirt-qemu kvm 10G 2012-02-24 11:09 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f_sm
Edycja: teraz w komentarzu wyświetlane są dodatkowe flagi dla każdego żądania:
$ ls -aiFlh /var/lib/nova/instances/_base/
total 143G
29884440 drwxrwxr-x 2 nova nova 4.0K 2012-03-08 15:45 ./
29884427 drwxr-xr-x 6 nova nova 4.0K 2012-03-08 15:05 ../
29884444 -rw-rw-r-- 1 nova nova 4.3M 2012-02-14 14:07 00000001
29884445 -rw-rw-r-- 1 nova nova 5.7M 2012-02-14 14:07 00000002
29884468 -rw-r--r-- 1 nova nova 65G 2012-03-08 15:59 1574bddb75c78a6fd2251d61e2993b5146201319.converted
29884466 -rw-rw-r-- 1 nova nova 58G 2012-03-08 15:35 1574bddb75c78a6fd2251d61e2993b5146201319.part
29884446 -rw-rw-r-- 1 libvirt-qemu kvm 24M 2012-02-14 14:07 77de68daecd823babbb58edb1c8e14d7106e83bb_sm
29884467 -rw-r--r-- 1 libvirt-qemu kvm 65G 2012-03-02 12:43 bd307a3ec329e10a2cff8fb87480823da114f8f4
29884443 -rw-rw-r-- 1 libvirt-qemu kvm 160G 2012-02-24 16:06 ephemeral_0_160_None
29884442 -rw-rw-r-- 1 libvirt-qemu kvm 80G 2012-02-24 22:38 ephemeral_0_80_None
29884447 -rw-r--r-- 1 libvirt-qemu kvm 10G 2012-02-24 22:37 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f
29884441 -rw-r--r-- 1 libvirt-qemu kvm 10G 2012-02-24 11:09 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f_sm
files
ls
disk-usage
Lorin Hochstein
źródło
źródło
ls -aiFl
hdu -h --total
na ten sam reż?Odpowiedzi:
Stanie się tak, jeśli masz rzadkie pliki:
Plik rzadki to plik, który nie został wypełniony blokami systemu plików (lub tylko częściowo). Kiedy czytasz niezapełnioną strefę pliku rzadkiego, otrzymasz zera. Takie puste strefy nie wymagają faktycznego miejsca na dysku, a „suma” zgłoszona przez
ls
odpowiada miejscu na dysku zajmowanym przez pliki (podobnie jakdu
).źródło
-s
/--size
„Drukuj przydział dysku dla każdego pliku po lewej stronie nazwy pliku. Jest to ilość miejsca na dysku wykorzystywana przez plik, która zwykle jest nieco większa niż rozmiar pliku, ale może bądź mniej, jeśli w pliku są dziury . ”-l
Opcja oczywiście drukuje rozmiar też.Należy pamiętać, że dane wyjściowe podane przez
ls -l
idu
mają subtelną, ale bardzo ważną różnicę. Spróbuj tego:Teraz
Natomiast
Wynika to z faktu, że system plików przydziela rozmiar w częściach 4096 (w moim systemie Linux). Nazywa się to IO Block. Możesz to zobaczyć przez:
źródło
stat
moją proponowaną wersjęempty-file
, a zobaczysz, że liczba bloków wynosi 0, nawet jeśli plik ma rozmiar 1G.stat
zgłasza równoważną liczbę starych rozmiarów bloków potrzebnych do przechowywania wszystkich bloków 4K (czyli 8-krotność rzeczywistej liczby bloków 4K).Zaakceptowana odpowiedź jest absolutnie poprawna, tylko jeśli chcesz zobaczyć pozorny rozmiar, możesz użyć:
du --apparent-size
źródło