Bagaimana daftar ukuran file rekursif dari file dan direktori dalam direktori?


50

Bagaimana cara mendaftar semua file dalam direktori dan ukuran file rekursifnya?

---sunting

Saya ingin melihat ukuran 'digulung' ke direktori induk di direktori yang tercantum. Saya tidak ingin melihat direktori anak atau isinya atau ukurannya.


1
Maksud Anda, Anda ingin melihat ukuran total (jumlah) semua file dalam folder, seperti mengklik kanan pada folder di desktop Anda dan memilih 'properti'?
Pavlos G.

Apakah Anda mencari perangkat lunak yang membantu Anda menemukan file besar, atau sesuatu untuk mendapatkan pohon file (dapat disempitkan)?
Lekensteyn

Hai @Pavlos G - maksud saya jumlah untuk masing-masing direktori di direktori saya saat ini - bukan jumlah untuk direktori keseluruhan.
hawkeye

@ JP - Periksa pembaruan saya ;-)
Pavlos G.

Jawaban:


53

Saya kira cara termudah adalah dengan mengetik ls -l, atau ls -lhyang akan memberikan ukuran file dalam format yang dapat dibaca manusia (KB, MB, dll).

Jika 'secara rekursif' berarti mencantumkan semua folder berikutnya, misalnya:

/ foo /
/ foo / bar / ....

Maka Anda juga harus menambahkan parameter R, seperti ls -lRatauls -lhR

Informasi lebih lanjut lsdapat ditemukan dengan mengetikman ls

Memperbarui:

Perintah berikut seperti yang diusulkan Lekensteyn mungkin akan melakukan pekerjaan:

du -h --max-depth=1 <folder>

-hadalah untuk dibaca manusia
--apparent-sizeadalah cara lain untuk menampilkan ukuran seperti yang sudah dinyatakan
--max-depthadalah tingkat subfolder yang ingin Anda turuni.


Apa yang digunakan untuk kedalaman maksimal? -1?
dylanh724

61
apt-get install ncdu

masukkan deskripsi gambar di sini

Ini interaktif juga jadi jika Anda ingin memeriksa sub folder hanya ATAS, BAWAH, dan Enter untuk itu.


Apa yang saya cari. Terima kasih banyak!
Mathlight

Mungkin rekomendasi perangkat lunak paling menakjubkan yang pernah saya dapatkan
SomethingSomething

ini seharusnya jawaban yang disetujui
dvdmn

30

Untuk mendapatkan ukuran total direktori dan semua anak

du -hs directory/*

Saya ingin tingkat selanjutnya turun dari itu - ukuran rekursif semua anak tingkat pertama.
hawkeye

1
Saya akan mengedit jawaban saya. Anda perlu menggunakan direktori du -h / *
Richard Holloway

17

Lihat juga tree. Ini tidak diinstal secara default tetapi merupakan repositori.

Contoh:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

Opsi lainnya dapat ditemukan di halaman manual.


Haruskah ukuran ditampilkan?
hawkeye

JG: The -s menunjukkan ukuran.
Richard Holloway

1
Memperlihatkan ukuran catatan direktori daripada ukuran direktori lengkap.
Steven Lu

-hperlihatkan ukuran dengan cara yang dapat dibaca manusia, misalnyatree -s
Eric Wang

15

Karena Anda tidak menyebutkan secara spesifik bahwa Anda memerlukan solusi berbasis terminal, saya pikir baobab alias Disk Usage Analyzer tidak ada dalam daftar.

Itu diinstal di Ubuntu secara default dan melakukan apa yang Anda inginkan dalam UI grafis yang bagus dengan kemampuan untuk menelusuri hierarki direktori.

Selain menampilkan daftar direktori dengan ukurannya, itu juga menunjukkan lingkaran cincin atau treemap penggunaan sistem file, yang sangat berguna untuk memvisualisasikan direktori yang memakan banyak ruang.

baobab, Penganalisis Penggunaan Disk


7

Sebuah solusi terminal adalah duperintah:

du --all --human-readable --apparent-size

(singkatan: du -ah --apparent-size)

dumenampilkan penggunaan disk untuk setiap file dan direktori. Opsi menjelaskan:

  • --all, -a- menunjukkan ukuran untuk file juga, bukan hanya direktori
  • --human-readable, -h- tampilkan ukuran dalam format yang dapat dibaca manusia, misalnya 10K(10 kilobyte), 10(10 byte)
  • --apparent-size - menunjukkan ukuran file aktual, bukan ukuran seperti yang digunakan oleh disk.

Saya hanya ingin anak-anak tingkat pertama
hawkeye

2
@ Hawkeye untuk level 1 yang bisa kamu gunakan--max-depth=1
nikoskip

4
@nikoskip tip yang bagus! Juga bagus untuk diketahui adalah singkatan, --max-depth=1bisa disingkat -d1.
Lekensteyn

bagaimana mendapatkan semua ini dalam urutan ukuran yang
menurun

bagaimana cara melihat isinya dan kosong: / dev / sda5 ext4 430G 381G 27G 94% / laptop saya berumur kurang dari 1 bulan dan sangat penuh sehingga tidak masuk akal
kRazzy R

2

Ini sepertinya melakukan trik ketika simlinks terlibat.

ls -LRlh

diberikan jawaban tidak memberi saya detail untuk simlinks (ls -lhR), angka-angka yang tercantum di sebelahnya tidak sesuai dengan ukuran yang tepat dari masing-masing nilai baik. Jawaban saya memberi saya hierarki dengan struktur pohon yang telah ditentukan dan jawaban yang benar .... ATAU apakah Anda merujuk ke beberapa jawaban yang dipilih?
Mulki

Suara turun ditarik, terbalik. Harap edit dan beri komentar di jawaban ... Terima kasih atas penjelasannya. ;-)
Fabby

1

Untuk mendapatkan daftar yang diurutkan, masukkan semuanya dalam MB dan urutkan:

du -m * | sort -n

Atau gunakan alat seperti DiskReport untuk menghasilkan laporan pohon disk lengkap.


1

Solusi terminal lain dengan finddan urutkan (berdasarkan filesize, kolom 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh

Ini tidak menunjukkan ukuran direktori.
muru
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.