Odpowiedzi:
Użyj ls
polecenia dla plików i du
polecenia dla katalogów.
Sprawdzanie rozmiarów plików
ls -l filename #Displays Size of the specified file
ls -l * #Displays Size of All the files in the current directory
ls -al * #Displays Size of All the files including hidden files in the current directory
ls -al dir/ #Displays Size of All the files including hidden files in the 'dir' directory
ls
polecenie nie wyświetli rzeczywistego rozmiaru katalogów ( dlaczego? ). Dlatego używamy du
do tego celu.
Sprawdzanie rozmiarów katalogu
du -sh directory_name #Gives you the summarized(-s) size of the directory in human readable(-h) format
du -bsh * #Gives you the apparent(-b) summarized(-s) size of all the files and directories in the current directory in human readable(-h) format
W tym -h
opcję w żadnej z powyższych poleceń (dla Ex: ls -lh *
lub du -sh
) daje wielkość w formacie czytelnym dla człowieka ( kb
, mb
, gb
, ...)
Aby uzyskać więcej informacji, patrz man ls
iman du
du
polecenie pokazuje użycie pliku na dysku, które może być większe niż rzeczywisty rozmiar pliku. Możesz użyć, du -d
aby uzyskać rzeczywisty rozmiar ls
. Więcej informacji: unix.stackexchange.com/a/106278/155224
Jest du
rozkaz.
Rozmiar katalogu i / lub pliku:
$ du -sh .bashrc /tmp
--apparent-size
Przełącznik wiersza poleceń pozwala mierzyć pozorne rozmiary (co ls
pokazuje), a nie faktyczne użycie dysku.
-h
flaga powinna robić to, o co prosisz: rozmiary wydruku w formacie czytelnym dla człowieka (np. 1K 234M 2G)
du
to jest podsumowanie użycia dysku przez zbiór PLIKÓW , to znaczy jeśli plik jest bardzo mały (tj. 2140 bajtów), wyjściem „du” jest (w moim przypadku) 4KB, ponieważ taki jest rozmiar klastra
--apparent-size
wtedy.
du -hs *
zobaczyć rozmiar wszystkich plików i katalogów w bieżącym katalogu.
Służy ls -s
do wyświetlania listy rozmiarów plików lub jeśli preferujesz ls -sh
rozmiary czytelne dla ludzi.
Do wykorzystania w katalogach du
i ponownie du -h
w rozmiarach czytelnych dla ludzi.
Możesz użyć:
ls -lh
Za pomocą tego polecenia zobaczysz pozorną przestrzeń katalogu i prawdziwą przestrzeń plików, aw szczegółach nazwy wyświetlanych plików, oprócz rozmiaru i daty utworzenia każdego z nich.
ls -l
poda rozmiar pliku, w tym metadane? ponieważ wydaje się być nieco 4kb większy dla jednego pliku, z którym próbowałem
Rozmiar pliku w MB
ls -l --b=M filename | cut -d " " -f5
Rozmiar pliku w GB
ls -l --b=G filename | cut -d " " -f5
Istnieje również doskonałe ncdu
narzędzie - może wyświetlać rozmiar katalogu ze szczegółowymi informacjami o podfolderach i plikach.
Ubuntu:
$ sudo apt-get install ncdu
Wystarczy wpisać ncdu [path]
w wierszu polecenia. Po kilku sekundach analizy ścieżki zobaczysz coś takiego:
$ ncdu 1.11 ~ Use the arrow keys to navigate, press ? for help
--- / ---------------------------------------------------------
. 96,1 GiB [##########] /home
. 17,7 GiB [# ] /usr
. 4,5 GiB [ ] /var
1,1 GiB [ ] /lib
732,1 MiB [ ] /opt
. 275,6 MiB [ ] /boot
198,0 MiB [ ] /storage
. 153,5 MiB [ ] /run
. 16,6 MiB [ ] /etc
13,5 MiB [ ] /bin
11,3 MiB [ ] /sbin
. 8,8 MiB [ ] /tmp
. 2,2 MiB [ ] /dev
! 16,0 KiB [ ] /lost+found
8,0 KiB [ ] /media
8,0 KiB [ ] /snap
4,0 KiB [ ] /lib64
e 4,0 KiB [ ] /srv
! 4,0 KiB [ ] /root
e 4,0 KiB [ ] /mnt
e 4,0 KiB [ ] /cdrom
. 0,0 B [ ] /proc
. 0,0 B [ ] /sys
@ 0,0 B [ ] initrd.img.old
@ 0,0 B [ ] initrd.img
@ 0,0 B [ ] vmlinuz.old
@ 0,0 B [ ] vmlinuz
Usuń aktualnie podświetlony element za pomocą d, zakończ za pomocą CTRL+c
ls -l --block-size = M da ci długą listę formatów (potrzebną do rzeczywistego zobaczenia rozmiaru pliku) i okrągłe rozmiary plików do najbliższej MiB.
Jeśli chcesz jednostek MB (10 ^ 6 bajtów) zamiast MiB (2 ^ 20 bajtów), użyj zamiast tego opcji --block-size = MB.
Jeśli nie chcesz dołączać sufiksu M do rozmiaru pliku, możesz użyć czegoś takiego jak --block-size = 1M. Dziękuję Stéphane Chazelas za zasugerowanie tego.
Jest to opisane na stronie podręcznika dla ls; man ls i wyszukaj ROZMIAR. Pozwala także na jednostki inne niż MB / MiB, a na podstawie wyglądu (nie próbowałem tego) również dowolnych rozmiarów bloków (aby można było zobaczyć rozmiar pliku jako liczbę bloków 412 bajtów, jeśli chcesz do).
Zauważ, że parametr --block-size jest rozszerzeniem GNU nad ls Open Group, więc może nie działać, jeśli nie masz przestrzeni użytkownika GNU (co robi większość instalacji Linuksa). Ls z GNU coreutils 8.5 obsługuje - blokowy rozmiar, jak opisano powyżej.
Przejdź do wybranego katalogu i wykonaj:
$ du -d 1 -h
gdzie:
-d 1 is the depth of the directories
-h is the human-readable option
Zobaczysz tak:
0 ./proc
8.5M ./run
0 ./sys
56M ./etc
12G ./root
33G ./var
23M ./tmp
3.2G ./usr
154M ./boot
26G ./home
0 ./media
0 ./mnt
421M ./opt
0 ./srv
2.6G ./backups
80G .
Jeśli używasz go w skrypcie, użyj stat
.
$ date | tee /tmp/foo
Wed Mar 13 05:36:31 UTC 2019
$ stat -c %s /tmp/foo
29
$ ls -l /tmp/foo
-rw-r--r-- 1 bruno wheel 29 Mar 13 05:36 /tmp/foo
To da ci rozmiar w bajtach. Zobacz man stat
więcej opcji formatu wyjściowego.
Odpowiednikiem OSX / BSD jest:
$ date | tee /tmp/foo
Wed Mar 13 00:54:16 EDT 2019
$ stat -f %z /tmp/foo
29
$ ls -l /tmp/foo
-rw-r--r-- 1 bruno wheel 29 Mar 13 00:54 /tmp/foo
Cały czas wykonuję następujące czynności:
$ du -sh backup-lr-May-02-2017-1493723588.tar.gz
NB:
-s, --summarize
display only a total for each argument
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
Aby uzyskać całkowity rozmiar katalogu lub całkowity rozmiar pliku,
du -csh <directory or filename*> | grep total
Użyj polecenia ls z argumentem -h: [root @ hots19 itp.] # ls -lh
H: dla czytelnego dla człowieka.
Exemple:
[root@CIEYY1Z3 etc]# ls -lh
total 1.4M
-rw-r--r--. 1 root root 44M Sep 15 2015 adjtime
-rw-r--r--. 1 root root 1.5K Jun 7 2013 aliases
-rw-r--r-- 1 root root 12K Nov 25 2015 aliases.db
drwxr-xr-x. 2 root root 4.0K Jan 11 2018 alternatives
-rw-------. 1 root root 541 Jul 8 2014 anacrontab
-rw-r--r--. 1 root root 55M Sep 16 2014 asound.conf
-rw-r--r--. 1 root root 1G Oct 6 2014 at.deny
Sam jestem użytkownikiem Ubuntu 16.04 i uważam, że ll
polecenie jest zdecydowanie najłatwiejszym sposobem na przejrzenie zawartości katalogu. Zauważyłem, że nie wszystkie dystrybucje Linuksa obsługują to polecenie, ale prawdopodobnie istnieje obejście / instalacja dla każdej dystrybucji.
Przykład:
user@user-XPS-15-9560:/$ ll
total 188
drwxr-xr-x 27 root root 4096 Jan 26 09:13 ./
drwxr-xr-x 27 root root 4096 Jan 26 09:13 ../
drwxr-xr-x 2 root root 4096 Jan 22 15:13 bin/
drwxr-xr-x 4 root root 12288 Jan 29 11:35 boot/
drwxr-xr-x 2 root root 4096 Sep 3 18:14 cdrom/
drwxr-xr-x 20 root root 4440 Feb 5 08:43 dev/
drwxr-xr-x 153 root root 12288 Feb 2 15:17 etc/
drwxr-xr-x 4 root root 4096 Sep 3 18:15 home/
...
Największą zaletą jest dla mnie to, że jest szybki i bardzo intuicyjny w obsłudze.
AKTUALIZACJA: nie wiedziałem, że w Ubuntu jest to wstępnie skonfigurowany alias. Możesz łatwo ustawić go samodzielnie, wykonując alias ll="ls -la"
w wierszu polecenia lub dodając ten wpis w pliku konfiguracyjnym .bashrc:
sudo nano ~/.bashrc
...add line described above and save file by pressing Ctrl+X and Y...
source ~/.bashrc
Wszystko czego potrzebujesz to flagi -l
i --block-size
flagi
Rozmiar wszystkich plików i katalogów w katalogu roboczym (w MB)
ls -l --block-size=M
Rozmiar wszystkich plików i katalogów w katalogu roboczym (w GB)
ls -l --block-size=G
Rozmiar określonego pliku lub katalogu
ls -l --block-size=M my_file.txt
ls -l --block-size=M my_dir/
ls --help
-l
użyj długiego formatu listy
--block-size=SIZE
: skaluj rozmiarySIZE
przed wydrukowaniem; np.'--block-size=M'
drukuje rozmiary w jednostkach 1 048 576 bajtów; patrzSIZE
format poniżej
SIZE
jest liczbą całkowitą i opcjonalną jednostką (przykład: 10 M to 10 * 1024 * 1024). Jednostki to K, M, G, T, P, E, Z, Y (moc 1024) lub KB, MB, ... (moc 1000).
Musisz rozróżnić rozmiar pliku i użycie dysku . Główna różnica między nimi polega na tym, że pliki są „pocięte na kawałki” i przechowywane w blokach.
Współczesny rozmiar bloku to 4KiB, więc pliki zajmą miejsce na dysku wielokrotne 4KiB, bez względu na to, jak małe są.
Jeśli użyjesz polecenia stat
, możesz zobaczyć obie figury obok siebie.
stat file.c
Jeśli chcesz mieć bardziej kompaktowy widok katalogu, możesz użyć ls -ls
, co da ci użycie w jednostkach 1KiB.
ls -ls dir
du
Zapewni również rzeczywiste wykorzystanie dysku, w jednostkach 1KiB lub dutree z -u
flagą.
Przykład: użycie pliku 1-bajtowego
$ echo "" > file.c
$ ls -l file.c
-rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c
$ ls -ls file.c
4 -rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c
$ du file.c
4 file.c
$ dutree file.c
[ file.c 1 B ]
$ dutree -u file.c
[ file.c 4.00 KiB ]
$ stat file.c
File: file.c
Size: 1 Blocks: 8 IO Block: 4096 regular file
Device: 2fh/47d Inode: 2185244 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ nacho) Gid: ( 1000/ nacho)
Access: 2018-04-30 20:41:58.002124411 +0200
Modify: 2018-04-30 20:42:24.835458383 +0200
Change: 2018-04-30 20:42:24.835458383 +0200
Birth: -
Ponadto w nowoczesnych systemach plików możemy mieć migawki, rzadkie pliki (pliki z dziurami w nich), które dodatkowo komplikują sytuację.
Możesz zobaczyć więcej szczegółów w tym artykule: zrozumienie rozmiaru pliku w systemie Linux
ls
nie pokaże całkowitego rozmiaru całej zawartości katalogu.