Antworten:
Verwenden Sie den ls
Befehl für Dateien und den du
Befehl für Verzeichnisse.
Überprüfen der Dateigrößen
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
Der Befehl listet nicht die tatsächliche Größe der Verzeichnisse auf ( warum? ). Deshalb verwenden wir du
zu diesem Zweck.
Überprüfen der Verzeichnisgrößen
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
Einschließlich -h
Option in einer der oben genannten Befehle (zB: ls -lh *
oder du -sh
) geben Ihnen Größe in für Menschen lesbaren Format ( kb
, mb
, gb
, ...)
Weitere Informationen finden Sie unter man ls
undman du
du
Befehl die Festplattennutzung der Datei anzeigt, die möglicherweise größer als die tatsächliche Größe der Datei ist. Sie können verwenden du -d
, um die tatsächliche Größe zu erhalten ls
. Weitere Informationen: unix.stackexchange.com/a/106278/155224
Es gibt du
Befehl.
Größe eines Verzeichnisses und / oder einer Datei:
$ du -sh .bashrc /tmp
--apparent-size
Mit dem Befehlszeilenschalter werden die scheinbaren Größen (was ls
angezeigt wird) und nicht die tatsächliche Festplattennutzung gemessen .
-h
Flag sollte tun, was Sie verlangen: Druckgrößen in lesbarem Format (z. B. 1K 234M 2G)
du
tut , ist Summarize Plattennutzung des Satzes von Dateien , die , wenn eine Datei ist sehr klein ist (dh 2140 Bytes) die Ausgabe von „du“ ist (in meinem Fall) 4 KB , weil das die Größe des Clusters
--apparent-size
Dann verwenden.
du -hs *
die Größe aller Dateien und Verzeichnisse im aktuellen Verzeichnis sehen.
Verwenden ls -s
Sie diese Option, ls -sh
um die Dateigröße aufzulisten oder wenn Sie für Menschen lesbare Größen bevorzugen .
Verwenden Sie für Verzeichnisse du
und wieder du -h
für lesbare Größen.
Sie können verwenden:
ls -lh
Mit diesem Befehl sehen Sie den scheinbaren Speicherplatz des Verzeichnisses und den tatsächlichen Speicherplatz der Dateien sowie detailliert die Namen der angezeigten Dateien sowie die Größe und das Erstellungsdatum der einzelnen Dateien.
ls -l
Gibt Ihnen die Dateigröße einschließlich der Metadaten? da es für eine Datei, mit der ich es versucht habe, etwas 4 KB größer zu sein scheint
Dateigröße in MB
ls -l --b=M filename | cut -d " " -f5
Dateigröße in GB
ls -l --b=G filename | cut -d " " -f5
Es gibt auch ein großartiges ncdu
Dienstprogramm - es kann die Verzeichnisgröße mit detaillierten Informationen zu Unterordnern und Dateien anzeigen.
Ubuntu:
$ sudo apt-get install ncdu
Geben Sie einfach ncdu [path]
die Befehlszeile ein. Nach einigen Sekunden für die Analyse des Pfads sehen Sie ungefähr Folgendes:
$ 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
Löschen Sie das aktuell markierte Element mit dund beenden Sie mit CTRL+c
ls -l --block-size = M gibt Ihnen eine Auflistung im Langformat (erforderlich, um die Dateigröße tatsächlich zu sehen) und runde Dateigrößen bis zur nächsten MiB.
Wenn Sie MB (10 ^ 6 Byte) anstelle von MiB-Einheiten (2 ^ 20 Byte) möchten, verwenden Sie stattdessen --block-size = MB.
Wenn Sie nicht möchten, dass das Suffix M an die Dateigröße angehängt wird, können Sie so etwas wie --block-size = 1M verwenden. Vielen Dank an Stéphane Chazelas, der dies vorgeschlagen hat.
Dies ist in der Manpage für ls beschrieben; man ls und suche nach GRÖSSE. Es erlaubt auch andere Einheiten als MB / MiB und wie es aussieht (das habe ich nicht versucht) auch beliebige Blockgrößen (so dass Sie die Dateigröße als Anzahl von 412-Byte-Blöcken sehen können, wenn Sie möchten zu).
Beachten Sie, dass der Parameter --block-size eine GNU-Erweiterung über dem ls der Open Group ist. Dies funktioniert möglicherweise nicht, wenn Sie kein GNU-Benutzerland haben (was bei den meisten Linux-Installationen der Fall ist). Das ls von GNU coreutils 8.5 unterstützt --block-size wie oben beschrieben.
Gehen Sie zum ausgewählten Verzeichnis und führen Sie Folgendes aus:
$ du -d 1 -h
wo:
-d 1 is the depth of the directories
-h is the human-readable option
Sie werden so sehen:
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 .
Wenn Sie es in einem Skript verwenden, verwenden Sie 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
Das gibt Ihnen Größe in Bytes. Siehe man stat
für weitere Ausgabeformatoptionen.
Das OSX / BSD-Äquivalent lautet:
$ 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
Ich mache die ganze Zeit Folgendes:
$ 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)
Um die Gesamtgröße des Verzeichnisses oder die Gesamtgröße der verwendeten Datei zu erhalten,
du -csh <directory or filename*> | grep total
Verwenden Sie den Befehl ls mit dem Argument -h: [root @ hots19 etc] # ls -lh
h: für vom Menschen lesbar.
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
Ich bin selbst Ubuntu 16.04-Benutzer und finde, dass der ll
Befehl bei weitem der einfachste Weg ist, den Inhalt eines Verzeichnisses anzuzeigen. Ich habe festgestellt, dass nicht alle Linux-Distributionen diesen Befehl unterstützen, aber es gibt wahrscheinlich eine Problemumgehung / Installation für jede Distribution da draußen.
Beispiel:
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/
...
Der größte Vorteil für mich ist, dass es schnell und sehr intuitiv zu bedienen ist.
UPDATE: Was ich nicht wusste war, dass es unter Ubuntu ein vorkonfigurierter Alias ist. Sie können es einfach selbst festlegen, indem Sie es alias ll="ls -la"
in der Befehlszeile ausführen oder diesen Eintrag in Ihre .bashrc-Konfigurationsdatei einfügen:
sudo nano ~/.bashrc
...add line described above and save file by pressing Ctrl+X and Y...
source ~/.bashrc
du -sh [Dateiname]
funktioniert perfekt, um die Größe einer bestimmten Datei zu ermitteln.
Alles was Sie brauchen ist -l
und --block-size
Flaggen
Größe aller Dateien und Verzeichnisse im Arbeitsverzeichnis (in MB)
ls -l --block-size=M
Größe aller Dateien und Verzeichnisse im Arbeitsverzeichnis (in GB)
ls -l --block-size=G
Größe einer bestimmten Datei oder eines bestimmten Verzeichnisses
ls -l --block-size=M my_file.txt
ls -l --block-size=M my_dir/
ls --help
-l
Verwenden Sie ein langes Listenformat
--block-size=SIZE
: Skalieren Sie die GrößenSIZE
vor dem Drucken. z. B.'--block-size=M'
druckt Größen in Einheiten von 1.048.576 Bytes; sieheSIZE
Format unten
SIZE
ist eine Ganzzahl und eine optionale Einheit (Beispiel: 10M ist 10 * 1024 * 1024). Einheiten sind K, M, G, T, P, E, Z, Y (Potenzen von 1024) oder KB, MB, ... (Potenzen von 1000).
Sie müssen zwischen Dateigröße und Festplattennutzung unterscheiden . Der Hauptunterschied zwischen den beiden besteht darin, dass Dateien "in Stücke geschnitten" und in Blöcken gespeichert werden.
Die moderne Blockgröße beträgt 4 KB, sodass Dateien ein Vielfaches des Speicherplatzes von 4 KB belegen, unabhängig davon, wie klein sie sind.
Wenn Sie den Befehl verwenden stat
, können Sie beide Figuren nebeneinander sehen.
stat file.c
Wenn Sie eine kompaktere Ansicht für ein Verzeichnis wünschen, können Sie diese verwenden ls -ls
, wodurch Sie sie in 1-KB-Einheiten verwenden können.
ls -ls dir
Außerdem erhalten du
Sie eine echte Festplattennutzung in 1- KB- Einheiten oder einen Dutree mit dem -u
Flag.
Beispiel: Verwendung einer 1-Byte-Datei
$ 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: -
Darüber hinaus können wir in modernen Dateisystemen Snapshots und spärliche Dateien (Dateien mit Löchern ) haben, die die Situation weiter verkomplizieren.
Weitere Details finden Sie in diesem Artikel: Grundlegendes zur Dateigröße unter Linux
Hier können Sie den ncdu
Disk Usage Analyzer verwenden. Es zeigt die Größe der Dateien und Verzeichnisse in einer ncurses-Schnittstelle an. Sie können zu jedem Verzeichnis navigieren und die Dateigrößen über dieselbe Benutzeroberfläche anzeigen.
Installieren
$ sudo apt-get install ncdu
Analysieren
$ ncdu <directory>
ls
zeigt Ihnen nicht die Gesamtgröße aller Inhalte eines Verzeichnisses an.