it-swarm.com.de

Wie kann ich die Größe von Dateien und Verzeichnissen in Linux sehen?

Wie kann ich die Größe von Dateien und Verzeichnissen in Linux sehen? Wenn Sie df -m verwenden, zeigt es die Größe aller Verzeichnisse auf der obersten Ebene, aber für die Verzeichnisse und Dateien im Verzeichnis, wie die Größe überprüft werden kann.

183
Advait

Es ist einfach. Verwenden Sie den Befehl ls für Dateien und den Befehl du für Verzeichnisse.

Überprüfen der Dateigrößen

ls -l filename /* Size of the file*/
ls -l *        /* Size of All the files in the current directory */
ls -al *       /* Size of All the files including hidden files in the current directory */
ls -al dir/    /* Size of All the files including hidden files in the 'dir' directory */

Der Befehl ls listet nicht die tatsächliche Größe der Verzeichnisse auf ( warum? ). Deshalb verwenden wir du für diesen Zweck.

Verzeichnisgrößen überprüfen

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*/

Wenn Sie die -h-Option in einen der obigen Befehle einschließen (für Beispiel: ls -lh * oder du -sh), erhalten Sie die Größe in einem für Menschen lesbaren Format (kb, mb, gb, ...)

Weitere Informationen finden Sie unter man ls und man du.

335
mk..

Es gibt einen du Befehl. 

Größe eines Verzeichnisses:

$ du -sh /tmp

Größe einer Datei:

$ du -h /tmp/xyz

Mit dem Befehlszeilenschalter --apparent-size wird die scheinbare Größe gemessen (was ls zeigt) und nicht die tatsächliche Festplattennutzung.

114

Verwenden Sie ls -s, um die Dateigröße aufzulisten, oder wenn Sie ls -sh für vom Menschen lesbare Größen bevorzugen.

Für Verzeichnisse verwenden Sie du und wiederum du -h für vom Menschen lesbare Größen.

51
Thor

Sie können verwenden:

ls -lh

Mit diesem Befehl werden der scheinbare Bereich des Verzeichnisses und der tatsächliche Speicherplatz der Dateien sowie Details der Namen der angezeigten Dateien sowie deren Größe und Erstellungsdatum angezeigt.

20
Yenier Torres

Es gibt auch ein großartiges Dienstprogramm ncdu - es kann die Verzeichnisgröße mit detaillierten Informationen zu Unterordnern und Dateien anzeigen.

Installation

Ubuntu:

$ Sudo apt-get install ncdu

Verwendungszweck

Geben Sie einfach ncdu [path] in die Befehlszeile ein. Nach einigen Sekunden für die Analyse des Pfads sehen Sie 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 dverlassen mit CTRL + c

13
avtomaton

mit ls -l --block-size = M erhalten Sie eine lange Formatauflistung (die benötigt wird, um die Dateigröße tatsächlich zu sehen) und die Dateigröße wird auf die nächste MiB gerundet.

Wenn Sie MB (10 ^ 6 Bytes) statt MiB (2 ^ 20 Bytes) verwenden möchten, verwenden Sie stattdessen --block-size = MB.

Wenn Sie nicht möchten, dass das M-Suffix an die Dateigröße angehängt wird, können Sie etwas wie --block-size = 1M verwenden. Danke an Stéphane Chazelas für diesen Vorschlag.

Dies wird in der Manpage für ls beschrieben. man ls und suche nach GRÖSSE. Es können auch andere Einheiten als MB/MiB verwendet werden, und so wie es aussieht (ich habe es nicht versucht), können auch beliebige Blockgrößen verwendet werden (Sie können also die Dateigröße als Anzahl von 412-Byte-Blöcken anzeigen, wenn Sie möchten.) zu).

Beachten Sie, dass der Parameter --block-size eine GNU - Erweiterung über den 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). . Die ls von GNU coreutils 8.5 unterstützen --blockgröße wie oben beschrieben. 

11
Adi

Dateigröße in MB

ls -l --b=M  filename | cut -d " " -f5

Dateigröße in GB

ls -l --b=G  filename | cut -d " " -f5
9
Ravichandra

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)
5
Fokwa Best

Sie können den folgenden Befehl verwenden, um eine Liste von Dateien in einem leicht lesbaren Format abzurufen.

ls-lrtsh

5
Amit

Sie müssen zwischen Dateigröße und Festplattennutzung unterscheiden. Der Hauptunterschied zwischen beiden besteht darin, dass Dateien "in Stücke geschnitten" und in Blöcken gespeichert werden.

Moderne Blockgrößen betragen 4 KB, daher verwenden Dateien den vielfachen Speicherplatz von 4 KB, unabhängig davon, wie klein sie sind.

Wenn Sie den Befehl stat verwenden, können Sie beide Zahlen nebeneinander sehen. 

stat file.c

Wenn Sie eine kompaktere Ansicht für ein Verzeichnis wünschen, können Sie ls -ls verwenden, wodurch Sie in 1-KB-Einheiten verwendet werden können.

ls -ls dir

Außerdem gibt Ihnen du die tatsächliche Festplattennutzung in 1-KB-Einheiten oder 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: -

In modernen Dateisystemen können außerdem Snapshots und spärliche Dateien (Dateien mit holes) erstellt werden, die die Situation zusätzlich erschweren.

In diesem Artikel finden Sie weitere Details: Die Dateigröße in Linux verstehen

2
nachoparker

Ich bin selbst ein Benutzer von Ubuntu 16.04 und finde, dass der Befehl ll 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:

[email protected]:/$ 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 wirklich intuitiv zu bedienen ist. 

UPDATE: Was ich nicht wusste, war, dass es sich bei Ubuntu um einen vorkonfigurierten Alias ​​handelt. Sie können es einfach selbst festlegen, indem Sie 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
2
Matteus

Verwenden Sie den Befehl ls mit dem Argument -h: [root @ hots19 etc] # ls -lh
h: für Menschen lesbar.

Exemple: 
    [[email protected] 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
1
mkebri

Gehe in das gewählte Verzeichnis und führe aus:

$ du -d 1 -h

woher:

-d 1 is the depth of the directories

-h is the human-readable option

Du wirst 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 .
1

sie können ls -sh in Linux verwenden. Sie können auch sortieren. Sie müssen in das Verzeichnis wechseln, in dem Sie die Dateigröße überprüfen möchten

1
Prem S

Um die Gesamtgröße des Verzeichnisses oder die Gesamtgröße der Dateiverwendung zu ermitteln,

du -csh <directory or filename*> | grep total
1
suhail ahamed F

gehen Sie zu spezifisches Verzeichnis und führen Sie dann den Befehl aus 

# du -sh * 

4.0K    1
4.0K    anadb.sh --> Shell file
4.0K    db.sh/    --> Shell file
24K     backup4/  --> Directory
8.0K    backup6/  --> Directory 
1.9G    backup.sql.gz  --> sql file
0
sachin_ur

Wenn Sie es in einem Skript verwenden, verwenden Sie stat.

stat -c %s filename

Das gibt Ihnen Größe in Bytes. Weitere Informationen zum Ausgabeformat finden Sie unter man stat.

0
Bruno Bronosky