Odpowiedzi:
Użyj lspolecenia dla plików i dupolecenia 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
lspolecenie nie wyświetli rzeczywistego rozmiaru katalogów ( dlaczego? ). Dlatego używamy dudo 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 -hopcję 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 lsiman du
dupolecenie pokazuje użycie pliku na dysku, które może być większe niż rzeczywisty rozmiar pliku. Możesz użyć, du -daby uzyskać rzeczywisty rozmiar ls. Więcej informacji: unix.stackexchange.com/a/106278/155224
Jest durozkaz.
Rozmiar katalogu i / lub pliku:
$ du -sh .bashrc /tmp
--apparent-sizePrzełącznik wiersza poleceń pozwala mierzyć pozorne rozmiary (co lspokazuje), a nie faktyczne użycie dysku.
-hflaga powinna robić to, o co prosisz: rozmiary wydruku w formacie czytelnym dla człowieka (np. 1K 234M 2G)
duto 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-sizewtedy.
du -hs *zobaczyć rozmiar wszystkich plików i katalogów w bieżącym katalogu.
Służy ls -sdo wyświetlania listy rozmiarów plików lub jeśli preferujesz ls -shrozmiary czytelne dla ludzi.
Do wykorzystania w katalogach dui ponownie du -hw 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 -lpoda 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 ncdunarzę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 statwię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 llpolecenie 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 -li --block-sizeflagi
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
-lużyj długiego formatu listy
--block-size=SIZE: skaluj rozmiarySIZEprzed wydrukowaniem; np.'--block-size=M'drukuje rozmiary w jednostkach 1 048 576 bajtów; patrzSIZEformat poniżej
SIZEjest 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
duZapewni również rzeczywiste wykorzystanie dysku, w jednostkach 1KiB lub dutree z -uflagą.
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
lsnie pokaże całkowitego rozmiaru całej zawartości katalogu.