Hoe kan ik de grootte van bestanden en mappen in Linux zien? Als u df -m
gebruikt, 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 ls
voor bestanden en de opdracht du
voor 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
ls
geeft 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 -h
opneemt 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 ls
en man du
Antwoord 2, autoriteit 26%
Er is een du
commando.
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-size
opdrachtregelschakelaar zorgt ervoor dat het de schijnbare grootte meet (wat ls
laat zien) in plaats van het werkelijke schijfgebruik.
Antwoord 3, autoriteit 18%
Gebruik ls -s
om de bestandsgrootte weer te geven, of als u de voorkeur geeft aan ls -sh
voor door mensen leesbare formaten.
Gebruik voor mappen du
, en nogmaals, du -h
voor 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 stat
voor 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 -l
en --block-size
vlaggen
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
-l
gebruik een lange lijstindeling
--block-size=SIZE
: schaalgroottes opSIZE
voordat ze worden afgedrukt; bijv.
'--block-size=M'
drukt formaten af in eenheden van
1.048.576 bytes; zie de indelingSIZE
hieronder
SIZE
is 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: [root@hots19 etc]# ls -lh
h : voor menselijk leesbaar.
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
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 ll
verreweg 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:
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/
...
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 stat
gebruikt, kun je beide figuren naast elkaar zien.
stat file.c
Als u een compactere weergave van een directory wilt, kunt u ls -ls
gebruiken, waarmee u gebruik kunt maken in eenheden van 1KiB.
ls -ls dir
Ook du
geeft 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 ncdu
hier 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>
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