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.

Hawkeye
sumber
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.

Pavlos G.
sumber
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.

ihashacks
sumber
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/*
Richard Holloway
sumber
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.

Richard Holloway
sumber
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

Sergey
sumber
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.
Lekensteyn
sumber
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
Mulki
sumber
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.

Erwan
sumber
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
Sergiy Kolodyazhnyy
sumber
Ini tidak menunjukkan ukuran direktori.
muru