it-swarm-id.com

Bagaimana cara menentukan ukuran total direktori (folder) dari baris perintah?

Apakah ada perintah sederhana untuk menampilkan ukuran total agregat (penggunaan disk) dari semua file dalam direktori (folder)?

Saya sudah mencoba ini, dan mereka tidak melakukan apa yang saya inginkan:

  • ls -l, yang hanya menampilkan ukuran file individual dalam direktori, juga
  • df -h, yang hanya menampilkan ruang kosong dan bekas pada disk saya.
755
David Barry

Perintah du "merangkum penggunaan disk masing-masing FILE, secara rekursif untuk direktori," mis.,

du -hs /path/to/directory
  • -h adalah untuk mendapatkan angka "dapat dibaca manusia", mis. dapatkan 140M alih-alih 143260 (ukuran dalam KBytes)
  • -s adalah untuk ringkasan (jika tidak Anda akan mendapatkan tidak hanya ukuran folder tetapi juga untuk semuanya dalam folder secara terpisah)

Saat Anda menggunakan -h Anda bisa mengurutkan nilai yang bisa dibaca manusia menggunakan

du -h | sort -h

Bendera -h pada sort akan mempertimbangkan nilai ukuran "Dapat Dibaca Manusia".


Jika ingin menghindari daftar semua file dan direktori secara berulang, Anda dapat menyediakan parameter --max-depth untuk membatasi berapa banyak item yang ditampilkan. Paling umum, --max-depth=1

du -h --max-depth=1 /path/to/directory
1211
Marcel Stimberg

Baru-baru ini saya menemukan alat interaktif hebat berbasis ncurses, yang dengan cepat memberi Anda gambaran tentang ukuran direktori. Mencari alat semacam itu selama bertahun-tahun.

  • cepat menelusuri melalui hierarki file
  • anda dapat menghapus mis. file sementara besar dari dalam alat
  • sangat cepat

Anggap saja sebagai baobab untuk baris perintah:

apt-get install ncdu
158
geekQ

Ini menemukan ukuran secara rekursif dan meletakkannya di sebelah setiap nama folder, bersama dengan ukuran total di bagian bawah, semua dalam format manusia

du -hsc *
51
Brad

Nikmati!

du foldername

Informasi lebih lanjut tentang perintah itu di sini

16
myusuf3

tree adalah perintah lain yang berguna untuk pekerjaan ini:

Cukup instal melalui Sudo apt-get install tree dan ketik yang berikut ini:

tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files

Dari man tree :

-h    Print  the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
      bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).

--du  For each directory report its size as the accumulation of sizes of all its files and  sub-directories
      (and their files, and so on). The total amount of used space is also given in the final report (like
      the 'du -c' command.)
11
αғsнιη

Di bawah ini adalah apa yang saya gunakan untuk mencetak total, folder, dan ukuran file:

$ du -sch /home/vivek/* | sort -rh

Detail

 ------------------------------------------------------------
   -c, --total
          produce a grand total
   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)
   -s, --summarize
          display only a total for each argument
 -------------------------------------------------------------
   -h, --human-numeric-sort
          compare human readable numbers (e.g., 2K 1G)
   -r, --reverse
          reverse the result of comparisons

Keluaran

 70M    total
 69M    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
 52K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
9
vivekyad4v

Jawabannya telah membuatnya jelas bahwa du adalah alat untuk menemukan ukuran total direktori. Namun, ada beberapa faktor yang perlu dipertimbangkan:

  • Kadang-kadang, du output dapat menyesatkan karena melaporkan ruang yang dialokasikan oleh sistem file, yang mungkin berbeda dari jumlah ukuran file individu. Biasanya sistem file akan mengalokasikan 4096 byte untuk file bahkan jika Anda menyimpan hanya satu karakter di dalamnya!

  • Perbedaan output karena daya 2 dan daya 10 unit. -h beralih ke du membagi jumlah byte dengan 2 ^ 10 (1024), 2 ^ 20 (1048576) dll untuk memberikan output yang dapat dibaca manusia. Banyak orang mungkin lebih terbiasa melihat kekuatan 10 (mis. 1K = 1000, 1M = 1000000) dan terkejut dengan hasilnya.

Untuk menemukan jumlah total ukuran semua file dalam direktori, dalam byte, lakukan:

find <dir> -ls | awk '{sum += $7} END {print sum}'

Contoh:

$ du -s -B 1
255729664

$ find .  -ls | awk '{sum += $7} END {print sum}'
249008169
4
pdp

Hanya untuk ukuran direktori dalam format yang dapat dibaca, gunakan di bawah ini:

du -hs directoryname

Ini mungkin bukan di bagian yang benar, tetapi dari baris perintah, Anda dapat mencoba:

ls -sh filename

-s adalah ukuran, dan -h dapat dibaca oleh manusia.

Gunakan -l untuk ditampilkan pada daftar ls, seperti di bawah ini:

ls -shl
1
Shiv Singh

du /foldername adalah perintah standar untuk mengetahui ukuran folder. Ini adalah praktik terbaik untuk menemukan opsi dengan membaca halaman manual:

man du

Anda harus membaca halaman manual (tersedia online ) sebelum Anda menggunakan perintah.

0

Berikut ini skrip POSIX yang akan berfungsi:

  • File
  • File
  • Direktori
  • Direktori
#!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'

Sumber

0
Steven Penny

Jika direktori yang Anda inginkan memiliki banyak sub-direktori, gunakan yang berikut ini:

$ cd ~/your/target/directory
$ du -csh 

-c, --total menghasilkan total besar
- s, --summarize hanya menampilkan total untuk setiap argumen
- h, - ukuran cetak yang dapat dibaca manusia dalam format yang dapat dibaca manusia (mis., 1K 234M 2G)

yang kemudian akan menghasilkan total keseluruhan penggunaan memori oleh semua file/folder di direktori saat ini.

0
kmario23