Linux'ta dosya ve dizinlerin boyutunu nasıl görebilirim?


341

Linux'ta dosya ve dizinlerin boyutunu nasıl görebilirim? Kullanılırsa df -m, tüm dizinin boyutunu en üst düzeyde gösterir, ancak dizindeki dizinler ve dosyalar için boyutu nasıl kontrol ederim?

Yanıtlar:


533

lsDosyalar duiçin komut ve dizinler için komut kullanın .

Dosya Boyutlarını Kontrol Etme

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

lskomutu dizinlerin gerçek boyutunu listelemez ( neden? ). Bu nedenle, dubu amaçla kullanıyoruz.

Dizin boyutlarını kontrol etme

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

Dahil -hyukarıdaki komutların hiçbirinde (Ör için: seçeneği ls -lh *veya du -sh) size insan okunabilir formatta boyutunu verecektir ( kb, mb, gb, ...)

Daha fazla bilgi için bkz man lsveman du


7
lsbir dizinin tüm içeriğinin toplam boyutunu göstermez.
Maxim Egorushkin

3
@MaximYegorushkin Teşekkür ederim. Düzeltildi.
mk ..

2
bayt cinsinden boyutu nasıl görebilirim (Mega, Giga, ...)?
Francisco Corrales Morales

7
@FranciscoCorralesMorales ls -lh size kb MB GB vb boyutunu gösterecektir
mk ..

4
Not o dukomut dosyasının disk kullanımını gösteren, hangi dosyanın gerçek boyutundan daha büyük olabilir. du -dGerçek boyutu almak için kullanabilirsiniz ls. Daha fazla bilgi: unix.stackexchange.com/a/106278/155224
Lucas Alonso

148

Orada dukomut.

Bir dizinin ve / veya dosyanın boyutu:

$ du -sh .bashrc /tmp

--apparent-sizekomut satırı anahtarı, lsgerçek disk kullanımı yerine görünür boyutları (ne gösterir) ölçmesini sağlar .


1
bayt cinsinden boyutu nasıl görebilirim (Kilo, Mega, Giga, ...)?
Francisco Corrales Morales

8
@FranciscoCorralesMorales -hbayrağı ne istersen yapmalı: insan tarafından okunabilir formatta baskı boyutları (örneğin, 1K
234M

3
Bunun doğru olduğunu düşünmüyorum. Ne duyapar DOSYA kümesinin disk kullanımını özetlemek , yani bir dosya çok küçükse (yani 2140 bayt) "du" çıktısı (benim durumumda)
4KB'dir

@mfloris Kullan --apparent-sizeo zaman.
Maxim Egorushkin

3
du -hs *Geçerli dizindeki tüm dosyaların ve dizinlerin boyutunu görmek istiyorum .
Jordan Stewart

83

ls -sDosya boyutunu listelemek veya ls -shinsan tarafından okunabilir boyutları tercih etmek için kullanın .

Dizinler için duve tekrar du -hokunabilir boyutlar için kullanın .


7
Bir ipucu kullanmaktır; Tüm dizin boyutlarını listelemek için 'du -sh *'. :)
Entalpi

36

Kullanabilirsiniz:

ls -lh

Bu komutu kullanarak, dizinin görünen alanını ve dosyaların gerçek alanını ve her birinin boyutunun ve oluşturulma tarihinin yanı sıra görüntülenen dosyaların adlarını ayrıntılı olarak göreceksiniz.


ls -lmeta veriler dahil u dosya boyutu verecek? denediğim bir dosya için biraz 4kb daha büyük gibi görünüyor
Jun711 13:18

22

Dosya Boyutu (MB)

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

GB cinsinden Dosya Boyutu

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

İki alanı çıktı olarak nasıl alabilirim?
surbhiGoel

17

Ayrıca harika bir ncduyardımcı program vardır - alt klasörler ve dosyalar hakkında ayrıntılı bilgi içeren dizin boyutunu gösterebilir.

Kurulum

Ubuntu:

$ sudo apt-get install ncdu

kullanım

Sadece ncdu [path]komut satırını yazın. Yolu analiz etmek için birkaç saniye sonra şöyle bir şey göreceksiniz:

$ 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

Şu anda vurgulanan öğeyi silmek için + ile dçıkınCTRLc


16

ls -l --block-size = M size uzun formatlı bir liste (aslında dosya boyutunu görmek için gereklidir) ve en yakın MiB'ye kadar yuvarlak dosya boyutları verecektir.

MiB (2 ^ 20 bayt) birimleri yerine MB (10 ^ 6 bayt) istiyorsanız, bunun yerine --block-size = MB kullanın.

M sonekinin dosya boyutuna eklenmesini istemiyorsanız --block-size = 1M gibi bir şey kullanabilirsiniz. Bunu önerdiği için Stéphane Chazelas'a teşekkürler.

Bu, ls için kılavuz sayfasında açıklanmıştır; man ls ve SIZE araması yapın. MB / MiB dışındaki birimlere de izin verir ve görünüşe göre (bunu denemedim) rasgele blok boyutları da (böylece isterseniz dosya boyutunu 412 baytlık blok sayısı olarak görebilirsiniz) kadar).

--Block-size parametresinin Open Group l l'lerinin üstünde bir GNU uzantısı olduğunu unutmayın, bu nedenle bir GNU kullanıcı alanınız yoksa (çoğu Linux kurulumunun yaptığı) bu çalışmayabilir. GNU coreutils 8.5'den gelen ls, yukarıda açıklandığı gibi --block boyutunu destekler.


13

Seçilen dizine gidin ve yürütün:

$ du -d 1 -h

nerede:

-d 1 is the depth of the directories

-h is the human-readable option

Bunun gibi göreceksiniz:

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 .

9

Bir komut dosyasında kullanıyorsanız, kullanın 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

Bu size bayt cinsinden boyut verecektir. Daha man statfazla çıktı biçimi seçeneği için bkz .

OS X / BSD eşdeğer olduğu:

$ 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

8

Dosyaların kolayca okunabilir biçimde listesini almak için aşağıdaki komutu kullanabilirsiniz.

ls -lrtsh


7

Her zaman aşağıdakileri yaparım:

$ 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

Toplam dizin boyutunu veya toplam dosya kullanım boyutunu elde etmek için,

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

5

-H argümanıyla ls komutunu kullanın : [root @ hots19 etc] # ls -lh
h: insanlar tarafından okunabilir.

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

4

Ben bir Ubuntu 16.04 kullanıcısıyım ve llkomutun bir dizinin içeriğini görmenin en kolay yolu olduğunu düşünüyorum. Tüm Linux dağıtımlarının bu komutu desteklemediğini fark ettim, ancak muhtemelen her dağıtım için bir geçici çözüm / kurulum var.

Misal:

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

Benim için en büyük avantaj, kullanımı hızlı ve gerçekten sezgisel olmasıdır.

GÜNCELLEME: bilmediğim şey Ubuntu'da önceden yapılandırılmış bir takma ad. alias ll="ls -la"Komut satırında çalıştırarak veya bu girdiyi .bashrc yapılandırma dosyanıza ekleyerek kolayca kendiniz ayarlayabilirsiniz :

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

3

du -sh [dosya_adı]

belirli bir dosyanın boyutunu almak için mükemmel çalışır.


3

Tek ihtiyacınız olan -lve --block-sizebayrakları

Çalışma dizini altındaki tüm dosya ve dizinlerin boyutu (MB cinsinden)

ls -l --block-size=M

Çalışma dizini altındaki tüm dosya ve dizinlerin boyutu (GB cinsinden)

ls -l --block-size=G

Belirli bir dosya veya dizinin boyutu

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

ls --help

-l uzun bir liste biçimi kullan

--block-size=SIZE: boyutları SIZEyazdırmadan önce ölçeklendirin ; örneğin, '--block-size=M'boyutları 1.048.576 bayt cinsinden yazdırır; aşağıdaki SIZEbiçime bakın

SIZEbir tamsayı ve isteğe bağlı birimdir (örnek: 10M, 10 * 1024 * 1024'tür). Birimler K, M, G, T, P, E, Z, Y (1024'ün gücü) veya KB, MB, ... (1000'in gücü).



2

Dosya boyutu ve disk kullanımı arasında ayrım yapmanız gerekir . İkisi arasındaki temel fark, dosyaların "parçalara ayrılması" ve bloklar halinde saklanmasıdır.

Modern blok boyutu 4KiB'dir, bu nedenle dosyalar ne kadar küçük olursa olsun 4KiB'nin birden çok disk alanını kullanır.

Komutu kullanırsanız, stather iki şekli de yan yana görebilirsiniz.

stat file.c

Bir dizin için daha kompakt bir görünüm ls -lsistiyorsanız, 1KiB birimlerde size kullanım sağlayacak şekilde kullanabilirsiniz .

ls -ls dir

Ayrıca du1KiB birimlerinde, size gerçek disk kullanımını ver, ya olacak dutree ile -ubayrak.

Örnek: 1 baytlık dosyanın kullanımı

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

Ek olarak, modern dosya sistemlerinde durumu daha da karmaşıklaştıran anlık görüntülere, seyrek dosyalara ( delikli dosyalar ) sahip olabiliriz.

Bu makalede daha fazla ayrıntı görebilirsiniz: Linux'ta dosya boyutunu anlama


1

Linux'ta ls -sh kullanabilirsiniz, sıralama yapabilirsiniz ayrıca dosyaların boyutunu kontrol etmek istediğiniz yere gitmeniz gerekir


1

Belirli bir dizine gidin ve aşağıdaki komutu çalıştırın

# 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

ncduDisk kullanım analizcisini burada kullanabilirsiniz . Bir ncurses arabirimindeki dosya ve dizinlerin boyutunu görüntüler. Her bir dizine gidebilir ve aynı arabirimdeki dosya boyutlarını görebilirsiniz.

Yüklemek

$ sudo apt-get install ncdu

Analiz etmek

$ ncdu <directory>

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.