Saya mencoba untuk mendapatkan ukuran direktori (berisi direktori dan sub direktori) dengan menggunakan ls
perintah dengan opsi l
. Tampaknya berfungsi untuk file ( ls -l file name
), tetapi jika saya mencoba untuk mendapatkan ukuran direktori (misalnya, ls -l /home
), saya hanya mendapatkan 4.096 byte, meskipun secara keseluruhan jauh lebih besar.
command-line
ls
disk-usage
Abdul Al Hazred
sumber
sumber
-h
opsi bermanfaat yang dapat Anda tambahkan ke-l
opsi (yaituls -lh
) untuk mendapatkan ukuran file yang akan dicetak dalam notasi yang ramah manusia seperti 1.1M bukan 1130301. The "h "dalamdu -hs
perintah yang @sam berikan sebagai jawaban untuk pertanyaan Anda tentang direktori juga berarti" dapat dibaca oleh manusia ", dan itu juga muncul didf -h
mana menunjukkan jumlah yang dapat dibaca yang digunakan manusia dan ruang kosong pada disk.Jawaban:
du -sh file_path
Penjelasan
du
( d isc u sage) perintah memperkirakan penggunaan ruang file_pathOpsinya
-sh
adalah (dariman du
):Untuk memeriksa lebih dari satu direktori dan melihat totalnya, gunakan
du -sch
:sumber
du
dan juga Anda memberikan cara untuk mencari rincian lebih lanjutman du
...find
misalnya untuk menghitung jumlah ruang dalam subdirektori tertentu di jalur saat ini:$ find . -type d -name "node_modules" -prune -exec du -sh {} \;
Cukup gunakan
du
perintah:akan memberi Anda penggunaan disk kumulatif dari semua direktori, file, dll yang tidak disembunyikan dalam direktori saat ini dalam format yang dapat dibaca manusia.
Anda dapat menggunakan
df
perintah untuk mengetahui ruang kosong di sistem file yang berisi direktori:sumber
du -sh *
mulai melempar kesalahan "opsi tidak dikenal" jika ada file dalam direktori yang dimulai dengan tanda hubung. Lebih aman untuk dilakukandu -sh -- *
du -sh *
tidak menunjukkan penggunaan memori folder tersembunyidu -sh -- * .*
untuk memasukkan dotfiles. Ini berguna untuk memasukkan.git
direktori yang mungkin besar , misalnya. Atau di zsh Anda dapatsetopt globdots
glob globfile secara default.--
dilakukan? Saya tahu ini berlaku untuk shell built-in untuk mengakhiri argumen opsi, tetapidu
bukan built-in, dan saya tidak melihat penggunaan ini didokumentasikan untukdu
: linux.die.net/man/1/du-b
(--apparent-size
)du
adalah temanmu Jika Anda hanya ingin mengetahui ukuran total dari sebuah direktori kemudian lompat ke dalamnya dan jalankan:Jika Anda juga ingin tahu sub-folder mana yang mengambil berapa banyak ruang disk ?! Anda dapat memperluas perintah ini ke:
yang akan memberi Anda ukuran semua sub-folder (level 1). Output akan diurutkan (folder terbesar di atas).
sumber
ncdu
file diurutkan berdasarkan ukuran turun secara default.du
dapat menjadi rumit untuk digunakan karena Anda harus melewati 100 argumen untuk mendapatkan hasil yang layak. Dan mencari tahu ukuran folder tersembunyi bahkan lebih sulit.Jadikan hidup Anda mudah dan bermanfaat
ncdu
.Anda mendapatkan ringkasan folder yang mudah dijelajahi.
sumber
ncdu
Hebat, saya selalu mencari perintah ini ketika lupa. Ini cepat, mudah dinavigasi dan membantu menemukan folder besar dengan mudah. FYI, ini tersedia untuk macOS juga dan mungkin semua mesin linux.ncdu
dengan menekand
tombolYang lain telah disebutkan
du
, tetapi saya juga ingin menyebutkan Ncdu - yang merupakan versi ncursesdu
dan menyediakan interaktivitas: Anda dapat menjelajahi hierarki direktori secara langsung dan melihat ukuran subdirektori.sumber
The
du
perintah menunjukkan penggunaan disk dari file.The
-h
pilihan menunjukkan hasil dalam bentuk manusia-dibaca (misalnya, 4k, 5M, 3G).sumber
Semua contoh di atas akan memberi tahu Anda ukuran data pada disk (yaitu jumlah ruang disk yang digunakan file tertentu, yang biasanya lebih besar dari ukuran file sebenarnya). Ada beberapa situasi di mana ini tidak akan memberi Anda laporan yang akurat, jika data tidak benar-benar disimpan pada disk khusus ini dan hanya referensi inode yang ada.
Dalam contoh Anda, Anda telah menggunakan ls-l pada satu file, yang akan mengembalikan ukuran sebenarnya file, BUKAN ukurannya pada disk.
Jika Anda ingin mengetahui ukuran file aktual, tambahkan opsi -b ke du.
sumber
secara pribadi saya pikir ini yang terbaik, jika Anda tidak ingin menggunakannya
ncdu
sumber
Ini menunjukkan berapa banyak ruang disk yang tersisa di drive saat ini dan kemudian memberitahu Anda berapa banyak setiap file / direktori memakan. misalnya,
sumber
Saya menggunakan perintah ini sebagai root :
sumber
temukan semua file di bawah direktori saat ini secara rekursif dan jumlahkan ukurannya:
sumber
-not -type d
jumlah tidak hanya ukuran file biasa (-type f
) tetapi juga ukuran tautan simbolik dan sebagainya.Ini adalah fungsi untuk .bash_aliases Anda
keluaran sampel:
untuk subdirs:
sumber
Satu lagi varian:
sumber
Perhatikan bahwa
du
mencetak ruang yang ditempati direktori pada media yang biasanya lebih besar dari sekadar ukuran total semua file dalam direktori, karenadu
memperhitungkan ukuran semua informasi tambahan yang disimpan pada media untuk mengatur direktori dengan kepatuhan dengan format sistem file.Jika sistem file dapat dikompresi, maka
du
mungkin menghasilkan jumlah yang bahkan lebih kecil daripada ukuran total semua file, karena file mungkin dikompresi secara internal oleh sistem file dan sehingga mereka mengambil lebih sedikit ruang pada media daripada hanya informasi terkompresi yang dikandungnya. Sama jika ada file yang jarang.jika ada tautan keras dalam direktori, maka
du
dapat mencetak nilai yang lebih kecil juga karena beberapa file berbeda dalam direktori merujuk data yang sama pada media.Untuk mendapatkan ukuran total langsung dari semua file dalam direktori, ekspresi shell satu baris berikut dapat digunakan (dengan asumsi sistem GNU):
atau bahkan lebih pendek:
Itu hanya menjumlahkan ukuran semua file non-direktori dalam direktori (dan subdirektori secara rekursif) satu per satu. Perhatikan bahwa untuk symlink, ia melaporkan ukuran symlink (bukan file yang ditunjuk symlink).
sumber
Anda dapat gunakan
du -sh directory/
dan
du -sh filename
untuk mengetahui ruang yang ditempati oleh folder atau file.
df -h
akan menunjukkan penggunaan disk dalam format yang dapat dibaca manusia -h melakukannya.
Ada juga program berbasis gui yang disebut
Disk Usage Analyzer
.sumber
Berikut ini skrip POSIX yang akan bekerja dengan:
Sumber
sumber