Bagaimana saya bisa melihat ukuran file dan direktori di linux?

341

Bagaimana saya bisa melihat ukuran file dan direktori di Linux? Jika digunakan df -m, maka itu menunjukkan ukuran semua direktori di tingkat atas, tetapi, untuk direktori dan file di dalam direktori, bagaimana cara memeriksa ukurannya?

Advait
sumber

Jawaban:

533

Gunakan lsperintah untuk file dan duperintah untuk direktori.

Memeriksa Ukuran File

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

lsperintah tidak akan mencantumkan ukuran aktual direktori ( mengapa? ). Karena itu, kami menggunakan duuntuk tujuan ini.

Memeriksa ukuran Direktori

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

Termasuk -hpilihan di salah satu perintah di atas (untuk Ex: ls -lh *atau du -sh) akan memberikan ukuran dalam format yang dapat dibaca manusia ( kb, mb, gb, ...)

Untuk informasi lebih lanjut, lihat man lsdanman du

mk ..
sumber
7
lstidak akan menampilkan ukuran total semua isi direktori.
Maxim Egorushkin
3
@ MaximYegorushkin Terima kasih. Dikoreksi.
mk ..
2
bagaimana saya bisa melihat ukuran dalam byte (Mega, Giga, ...)?
Francisco Corrales Morales
7
@FranciscoCorralesMorales ls -lh akan menunjukkan ukuran kb MB GB dll.
mk ..
4
perhatikan bahwa duperintah tersebut menunjukkan penggunaan disk dari file tersebut, yang mungkin lebih besar dari ukuran sebenarnya file tersebut. Anda dapat menggunakan du -duntuk mendapatkan ukuran sebenarnya seperti lshalnya. Info lebih lanjut: unix.stackexchange.com/a/106278/155224
Lucas Alonso
148

Ada duperintah.

Ukuran direktori dan / atau file:

$ du -sh .bashrc /tmp

--apparent-sizecommand line switch membuatnya mengukur ukuran nyata (apa yang lsditampilkan) daripada penggunaan disk yang sebenarnya.

Maxim Egorushkin
sumber
1
bagaimana saya bisa melihat ukuran dalam byte (Kilo, Mega, Giga, ...)?
Francisco Corrales Morales
8
-hBendera @FranciscoCorralesMorales harus melakukan apa yang Anda minta: ukuran cetak dalam format yang dapat dibaca manusia (mis., 1K 234M 2G)
Maxim Egorushkin
3
Saya pikir ini tidak benar. Apa yang dudilakukan adalah Meringkas penggunaan disk dari set FILE , yaitu jika file sangat kecil (yaitu 2140 byte) output dari "du" adalah (dalam kasus saya) 4KB karena itulah ukuran cluster
mfloris
@floris Gunakan --apparent-sizelalu.
Maxim Egorushkin
3
Saya suka du -hs *melihat ukuran semua file, dan direktori di direktori saat ini.
Jordan Stewart
83

Gunakan ls -suntuk membuat daftar ukuran file, atau jika Anda lebih suka ls -shuntuk ukuran yang dapat dibaca manusia.

Untuk direktori gunakan du, dan sekali lagi, du -huntuk ukuran yang dapat dibaca manusia.

Thor
sumber
7
Tip untuk digunakan; 'du -sh *' untuk mendaftar semua ukuran direktori. :)
Entalpi
36

Kamu bisa memakai:

ls -lh

Dengan menggunakan perintah ini Anda akan melihat ruang yang tampak dari direktori dan ruang sebenarnya dari file-file dan secara rinci nama-nama file yang ditampilkan, di samping ukuran dan tanggal pembuatan masing-masing.

Yenier Torres
sumber
ls -lakan memberi Anda ukuran file termasuk metadata? karena tampaknya sedikit 4kb lebih besar untuk salah satu file yang saya coba
Jun711
22

Ukuran File dalam MB

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

Ukuran File dalam GB

ls -l --b=G  filename | cut -d " " -f5
Ravichandra
sumber
Bagaimana cara mendapatkan dua bidang sebagai output?
surbhiGoel
17

Ada juga ncduutilitas yang hebat - dapat menampilkan ukuran direktori dengan info rinci tentang subfolder dan file.

Instalasi

Ubuntu:

$ sudo apt-get install ncdu

Pemakaian

Cukup ketikkan ncdu [path]baris perintah. Setelah beberapa detik untuk menganalisis jalan, Anda akan melihat sesuatu seperti ini:

$ 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

Hapus elemen yang sedang disorot dengan d, keluar dengan CTRL+c

avtomaton
sumber
16

ls -l --block-size = M akan memberi Anda daftar format panjang (diperlukan untuk benar-benar melihat ukuran file) dan membulatkan ukuran file hingga MiB terdekat.

Jika Anda menginginkan MB (10 ^ 6 byte) daripada unit MiB (2 ^ 20 byte), gunakan --block-size = MB sebagai gantinya.

Jika Anda tidak ingin akhiran M melekat pada ukuran file, Anda dapat menggunakan sesuatu seperti --block-size = 1M. Terima kasih Stéphane Chazelas karena menyarankan ini.

Ini dijelaskan dalam halaman manual untuk ls; man ls dan cari UKURAN. Ini memungkinkan untuk unit selain MB / MiB juga, dan dari tampilannya (saya tidak mencobanya) ukuran blok yang sewenang-wenang juga (sehingga Anda bisa melihat ukuran file sebagai jumlah blok 412-byte, jika Anda ingin untuk).

Perhatikan bahwa parameter --block-size adalah ekstensi GNU di atas ls Open Group, jadi ini mungkin tidak berfungsi jika Anda tidak memiliki GNU userland (yang dilakukan sebagian besar instalasi Linux). Ls dari GNU coreutils 8.5 tidak mendukung --block-size seperti dijelaskan di atas.

Adi
sumber
13

Pergi ke direktori yang dipilih dan jalankan:

$ du -d 1 -h

dimana:

-d 1 is the depth of the directories

-h is the human-readable option

Anda akan melihat seperti itu:

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 .
Claudio Guirunas
sumber
9

Jika Anda menggunakannya dalam skrip, gunakan 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

Itu akan memberi Anda ukuran dalam byte. Lihat man statopsi format keluaran lainnya.

The OSX / BSD setara adalah:

$ 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
Bruno Bronosky
sumber
8

Anda dapat menggunakan perintah di bawah ini untuk mendapatkan daftar file dalam format yang mudah dibaca manusia.

ls -lrtsh

Amit
sumber
7

Saya melakukan hal berikut setiap saat:

$ 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)
Fokwa Terbaik
sumber
5

Untuk mendapatkan ukuran total direktori atau ukuran total penggunaan file,

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

Gunakan perintah ls dengan argumen -h: [root @ hots19 etc] # ls -lh
h: untuk dibaca manusia.

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
mkebri
sumber
4

Saya sendiri pengguna Ubuntu 16.04 dan saya menemukan bahwa llperintahnya adalah cara termudah untuk melihat isi direktori. Saya perhatikan bahwa tidak semua distribusi Linux mendukung perintah ini, tetapi mungkin ada solusi / instal untuk setiap distro di luar sana.

Contoh:

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

Keuntungan terbesar bagi saya adalah cepat dan sangat intuitif untuk digunakan.

UPDATE: yang saya tidak tahu adalah bahwa di Ubuntu itu adalah alias yang sudah dikonfigurasi sebelumnya. Anda dapat dengan mudah mengaturnya sendiri dengan mengeksekusi alias ll="ls -la"pada baris perintah, atau dengan menambahkan entri ini di file config .bashrc Anda:

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

du -sh [file_name]

berfungsi dengan baik untuk mendapatkan ukuran file tertentu.

Eyshika
sumber
3

Yang Anda butuhkan adalah -ldan --block-sizebendera

Ukuran semua file dan direktori di bawah direktori kerja (dalam MB)

ls -l --block-size=M

Ukuran semua file dan direktori di bawah direktori kerja (dalam GB)

ls -l --block-size=G

Ukuran file atau direktori tertentu

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

ls --help

-l gunakan format daftar panjang

--block-size=SIZE: skala ukuran dengan SIZEsebelum mencetaknya; misalnya, '--block-size=M'mencetak ukuran dalam satuan 1.048.576 byte; lihat SIZEformat di bawah ini

SIZEadalah bilangan bulat dan unit opsional (contoh: 10M adalah 10 * 1024 * 1024). Unit adalah K, M, G, T, P, E, Z, Y (kekuatan 1024) atau KB, MB, ... (kekuatan 1000).


Giorgos Myrianthous
sumber
2

Anda harus membedakan antara ukuran file dan penggunaan disk . Perbedaan utama antara keduanya berasal dari fakta bahwa file "dipotong-potong" dan disimpan dalam blok.

Ukuran blok modern adalah 4KiB, jadi file akan menggunakan kelipatan ruang disk dari 4KiB, terlepas dari seberapa kecilnya.

Jika Anda menggunakan perintah ini, statAnda dapat melihat kedua angka berdampingan.

stat file.c

Jika Anda ingin tampilan yang lebih ringkas untuk sebuah direktori, Anda dapat menggunakan ls -ls, yang akan memberi Anda penggunaan dalam unit 1KiB.

ls -ls dir

Juga duakan memberikan penggunaan disk nyata, dalam satuan 1KiB, atau dutree dengan -ubendera.

Contoh: penggunaan file 1 byte

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

Selain itu, dalam sistem file modern kita dapat memiliki snapshot, file jarang (file dengan lubang di dalamnya) yang semakin memperumit situasi.

Anda dapat melihat lebih detail di artikel ini: memahami ukuran file di Linux

nachoparker
sumber
1

Anda dapat menggunakan ls -sh di linux yang dapat Anda lakukan urutkan juga Anda harus pergi ke dir di mana Anda ingin memeriksa ukuran file

Prem S
sumber
1

pergi ke direktori tertentu kemudian jalankan perintah di bawah ini

# 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
sachin_ur
sumber
0

Kamu bisa memakai ncdu penganalisis penggunaan disk di sini. Ini menampilkan ukuran file dan direktori dalam antarmuka ncurses. Anda dapat menavigasi ke setiap direktori dan melihat ukuran file dari antarmuka yang sama.

Untuk memasang

$ sudo apt-get install ncdu

Untuk menganalisa

$ ncdu <directory>

masukkan deskripsi gambar di sini

menyimpulkan dia
sumber