Hoe kan ik de grootte van bestanden en mappen in Linux zien?

Hoe kan ik de grootte van bestanden en mappen in Linux zien? Als u df -mgebruikt, wordt de grootte van alle mappen op het hoogste niveau weergegeven, maar hoe controleer ik de grootte van de mappen en bestanden in de map?


Antwoord 1, autoriteit 100%

Gebruik de opdracht lsvoor bestanden en de opdracht duvoor mappen.

Bestandsgroottes controleren

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

De opdracht

lsgeeft niet de werkelijke grootte van mappen weer (waarom?). Daarom gebruiken we voor dit doel du.

Grootte van directory’s controleren

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

Als u de optie -hopneemt in een van de bovenstaande opdrachten (bijvoorbeeld: ls -lh *of du -sh) krijgt u grootte in door mensen leesbaar formaat (kb, mb,gb, …)

Voor meer informatie zie man lsen man du


Antwoord 2, autoriteit 26%

Er is een ducommando.

Grootte van een map en/of bestand, op een mensvriendelijke manier:

$ du -sh .bashrc /tmp

Ik heb het onthouden als een niet-bestaand Engels woord dush.


--apparent-sizeopdrachtregelschakelaar zorgt ervoor dat het de schijnbare grootte meet (wat lslaat zien) in plaats van het werkelijke schijfgebruik.


Antwoord 3, autoriteit 18%

Gebruik ls -som de bestandsgrootte weer te geven, of als u de voorkeur geeft aan ls -shvoor door mensen leesbare formaten.

Gebruik voor mappen du, en nogmaals, du -hvoor door mensen leesbare formaten.


Antwoord 4, autoriteit 7%

U kunt gebruiken:

ls -lh

Met deze opdracht ziet u de schijnbare ruimte van de map en de werkelijke ruimte van de bestanden en in detail de namen van de weergegeven bestanden, naast de grootte en aanmaakdatum van elk.


Antwoord 5, autoriteit 5%

Er is ook een geweldig ncdu-hulpprogramma – het kan de mapgrootte weergeven met gedetailleerde informatie over submappen en bestanden.

Installatie

Ubuntu:

$ sudo apt-get install ncdu

Gebruik

Typ gewoon ncdu [path]in de opdrachtregel. Na een paar seconden voor het analyseren van het pad, ziet u zoiets als dit:

$ 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

Verwijder het momenteel gemarkeerde element met d, sluit af met CTRL+ c


Antwoord 6, autoriteit 4%

Bestandsgrootte in MB

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

Bestandsgrootte in GB

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

Antwoord 7, autoriteit 4%

Ga naar de gekozen map en voer het volgende uit:

$ du -d 1 -h

waar:

-d 1 is the depth of the directories
-h is the human-readable option

Zo zie je:

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 .

Antwoord 8, autoriteit 3%

ls -l –block-size=M geeft u een lijst met lange formaten (nodig om de bestandsgrootte daadwerkelijk te zien) en rondt de bestandsgrootte af op de dichtstbijzijnde MiB.

Als je MB (10^6 bytes) wilt in plaats van MiB (2^20 bytes), gebruik dan –block-size=MB.

Als u niet wilt dat het M-achtervoegsel aan de bestandsgrootte wordt toegevoegd, kunt u iets als –block-size=1M gebruiken. Bedankt Stéphane Chazelas voor het suggereren hiervan.

Dit wordt beschreven in de man-pagina voor ls; man ls en zoek naar SIZE. Het staat ook andere eenheden toe dan MB/MiB, en zo te zien (ik heb dat niet geprobeerd) ook willekeurige blokgroottes (zodat je de bestandsgrootte zou kunnen zien als een aantal blokken van 412 bytes, als je wilt naar).

Merk op dat de parameter –block-size een GNU-extensie is bovenop de ls van de Open Group, dus dit werkt mogelijk niet als je geen GNU-gebruikersland hebt (wat de meeste Linux-installaties wel hebben). De ls van GNU coreutils 8.5 ondersteunt –block-size zoals hierboven beschreven.


Antwoord 9, autoriteit 2%

Als je het in een script gebruikt, gebruik dan 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

Dat geeft je de grootte in bytes. Zie man statvoor meer opties voor uitvoerindelingen.

De OSX/BSD-equivalentis:

$ 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

Antwoord 10, autoriteit 2%

U kunt het onderstaande commando gebruiken om een lijst met bestanden te krijgen in een gemakkelijk door mensen leesbaar formaat.

ls -lrtsh


Antwoord 11, autoriteit 2%

Alles wat je nodig hebt zijn -len --block-sizevlaggen

Grootte van alle bestanden en mappen in de werkmap (in MB)

ls -l --block-size=M

Grootte van alle bestanden en mappen in de werkmap (in GB’s)

ls -l --block-size=G

Grootte van een specifiek bestand of map

ls -l --block-size=M my_file.txt
ls -l --block-size=M my_dir/

ls --help

-lgebruik een lange lijstindeling

--block-size=SIZE: schaalgroottes op SIZEvoordat ze worden afgedrukt; bijv.
'--block-size=M'drukt formaten af in eenheden van
1.048.576 bytes; zie de indeling SIZEhieronder

SIZEis een geheel getal en optionele eenheid (voorbeeld: 10M is 10*1024*1024).
Eenheden zijn K, M, G, T, P, E, Z, Y (machten van 1024) of KB, MB, …
(machten van 1000).



Antwoord 12

Ik doe altijd het volgende:

$ 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)

Antwoord 13

Gebruik lscommando met -h argument: [[email protected] etc]# ls -lh
h : voor menselijk leesbaar.

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

Antwoord 14

du -sh [bestandsnaam]

werkt perfect om de grootte van een bepaald bestand te krijgen.


Antwoord 15

Om de totale grootte van de map of de totale grootte van het bestandsgebruik te krijgen,

du -csh <directory or filename*> | grep total

Antwoord 16

Ik ben zelf een Ubuntu 16.04-gebruiker en ik vind dat de opdracht llverreweg de gemakkelijkste manier is om de inhoud van een map te zien. Ik heb gemerkt dat niet alle Linux-distributies deze opdracht ondersteunen, maar er is waarschijnlijk een oplossing/installatie voor elke distro die er is.

Voorbeeld:

[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/
...

Het grootste voordeel voor mij is dat het snel en heel intuïtief te gebruiken is.

UPDATE: wat ik niet wist, was dat het op Ubuntu een vooraf geconfigureerde alias is. Je kunt het eenvoudig zelf instellen door alias ll="ls -la"uit te voeren op de opdrachtregel, of door dit item toe te voegen aan je .bashrc-configuratiebestand:

sudo nano ~/.bashrc
...add line described above and save file by pressing Ctrl+X and Y...
source ~/.bashrc

Antwoord 17

Je moet onderscheid maken tussen bestandsgrootteen schijfgebruik. Het belangrijkste verschil tussen de twee komt van het feit dat bestanden “in stukjes worden geknipt” en in blokken worden opgeslagen.

Moderne blokgrootte is 4KiB, dus bestanden nemen schijfruimte in beslag die groter is dan 4KiB, ongeacht hoe klein ze zijn.

Als je het commando statgebruikt, kun je beide figuren naast elkaar zien.

stat file.c

Als u een compactere weergave van een directory wilt, kunt u ls -lsgebruiken, waarmee u gebruik kunt maken in eenheden van 1KiB.

ls -ls dir

Ook dugeeft u echt schijfgebruik, in eenheden van 1KiB, of dutreemet de vlag -u.

Voorbeeld: gebruik van een 1-byte-bestand

$ 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: -

Bovendien kunnen we in moderne bestandssystemen snapshots hebben, schaarse bestanden (bestanden met gatenerin) die de situatie nog ingewikkelder maken.

Je kunt meer details zien in dit artikel: inzicht bestandsgrootte in Linux


Antwoord 18

U kunt de schijfgebruiksanalysator ncduhier gebruiken. Het toont de grootte van de bestanden en mappen in een ncurses-interface. U kunt naar elke map navigeren en de bestandsgroottes zien vanuit dezelfde interface.

Installeren

$ sudo apt-get install ncdu

Analyseren

$ ncdu <directory>

voer hier de afbeeldingsbeschrijving in


Antwoord 19

ls -sh video.mp4 | sed s/video.mp4//g

uitvoer,
5,6 miljoen


Antwoord 20

Ik geef de voorkeur aan dit commando ll -sha.


Antwoord 21

je kunt ls -sh gebruiken in linux, je kunt ook sorteren
je moet naar de map gaan waar je de grootte van bestanden wilt controleren


Antwoord 22

ga naar specifieke mapen voer het onderstaande commando uit

# 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

Other episodes