Polecenie ls: co oznacza pierwszy wiersz?

30

Kiedy to zrobię ls -l, dostaję to:

calico@A000505:~/Documentos$ ls -l
total 2020
-rwxr-xr-x 1 calico calico    8559 2010-11-16 11:12 a.out
-rwxrw-rw- 1 smt    smt    2050138 2010-10-14 10:40 Java2.pdf
-rwxrw-rw- 1 ocv    ocv        234 2010-11-16 11:11 test.c

Ale co oznacza „całkowity 2020”? Mam tylko 3 pliki, więc nie jest to liczba plików ani katalogów i myślę, że to też nie jest rozmiar. Więc co to jest?

oli206
źródło

Odpowiedzi:

25

Liczba bloków 1kB używanych przez pliki w katalogu, nierekurencyjnie.

Użyj, ls -lhaby uzyskać bardziej znaczące wyniki.

Juliano
źródło
5
Mówiąc dokładniej, w większości implementacji jest to całkowita liczba bloków wykorzystywanych przez pliki znajdujące się na liście katalogów (porównaj ls -l ~z ls -la ~, i ls -lA ~). Rozmiar bloku wynosi 1kB dla narzędzi GNU, ale 512B zgodnie z POSIX i większością innych aktualnych implementacji.
Gilles „SO- przestań być zły”
Co ma -hzrobić?
Pozew Fund Moniki w dniu
14

co oznacza „total” w ls -al

Świetne pytanie, oznacza to, że chcesz zwrócić uwagę na szczegóły. Zilustruję przykładami. W moim katalogu domowym /home/elznajduje się katalog o nazwie tmpdir z plikami pod nim. Przechodzę do tego katalogu i robięls -al

el@angeliqe ~/tmpdir $ ls -al
total 20
drwxrwxr-x 4 el users 4096 Dec 21 11:45 .
drwx--x--x 9 el users 4096 Dec 21 11:45 ..
drwxrwxr-x 2 el users 4096 Dec 21 11:45 dirWithFiles
drwxrwxr-x 2 el users 4096 Dec 21 11:44 emptydir
-rw-rw-r-- 1 el users  182 Dec 21 11:45 myfile.txt

Mówi „łącznie 20”. Przekłada się to na: „tmpdir używa 20 KB miejsca na dysku dla wszystkich katalogów i plików”.

z opcją -h mówisz, aby dać ci ją w postaci czytelnej dla człowieka:

el@angeliqe ~/tmpdir $ ls -alh
total 20K
drwxrwxr-x 4 el users 4.0K Dec 21 11:45 .
drwx--x--x 9 el users 4.0K Dec 21 11:45 ..
drwxrwxr-x 2 el users 4.0K Dec 21 11:45 dirWithFiles
drwxrwxr-x 2 el users 4.0K Dec 21 11:44 emptydir
-rw-rw-r-- 1 el users  182 Dec 21 11:45 myfile.txt

Interesujące jest to, że katalog, w którym nie ma nic, zajmuje również 8K miejsca, w moim przypadku emptydirnie ma w nim nic, ale pokazuje, że używa 8K

el@angeliqe ~/tmpdir/emptydir $ ls -al
total 8
drwxrwxr-x 2 el users 4096 Dec 21 11:44 .
drwxrwxr-x 4 el users 4096 Dec 21 11:45 ..

Dodanie pustego katalogu dowodzi, że katalogi zajmują 4K:

el@angeliqe ~/tmpdir/emptydir $ ls -alh
total 12K
drwxrwxr-x 3 el users 4.0K Dec 21 11:54 .
drwxrwxr-x 4 el users 4.0K Dec 21 11:45 ..
drwxrwxr-x 2 el users 4.0K Dec 21 11:54 blah

Kolejnym poleceniem do zbadania jest du:

el@angeliqe ~/tmpdir/emptydir $ du
4       ./blah
8       .

Możesz także spojrzeć na rozmiary plików na pewną głębokość:

el@angeliqe ~ $ du -h --max-depth=1
12K     ./.ssh
4.0K    ./my_recycle_bin
8.0K    ./.vim
13G     ./gnuoctbluehost
24K     ./tmpdir
48K     ./.subversion
152K    ./.cpan
13G     .
el@angeliqe ~ $
Eric Leschinski
źródło
5

Nikt nie wspomina o -sopcji (?). Od man ls:

-s, --size print the allocated size of each file, in blocks

.. więc jeśli podasz listę ls -s, otrzymasz liczbę bloków dla każdego katalogu i pliku w bieżącym katalogu. Kiedy to podsumujesz, otrzymasz dokładnie taką samą liczbę, jak total:na górze ls -l.

Dodatkowo: Aby uzyskać rozmiar bloku, zaznacz to .

sobi3ch
źródło