Saya mengerjakan cluster yang dibagikan dengan kolega lain. Hard disk terbatas (dan sudah penuh pada beberapa kesempatan), jadi saya sesekali membersihkan bagian saya. Saya ingin melakukan ini dengan cepat, jadi sampai sekarang saya melakukan ini dengan membuat daftar file yang lebih besar dari 100 MB lebih tua dari 3 bulan, dan saya melihat apakah saya masih membutuhkannya.
Tetapi sekarang saya berpikir bahwa mungkin ada folder dengan> 1000 file lebih kecil yang saya lewatkan, jadi saya ingin mendapatkan cara mudah untuk melihat apakah ini masalahnya. Dari cara saya menghasilkan data, akan membantu untuk mendapatkan daftar ukuran total per ekstensi. Dalam konteks pertanyaan ini, 'ekstensi' sebagai segala sesuatu di belakang titik terakhir dalam nama file.
Misalkan saya memiliki banyak folder dengan banyak file:
folder1/file1.bmp 40 kiB
folder1/file2.jpg 20 kiB
folder2/file3.bmp 30 kiB
folder2/file4.jpg 8 kiB
Apakah mungkin membuat daftar ukuran file total per ekstensi file, jadi seperti ini:
bmp 70 kiB
jpg 28 kiB
Saya tidak peduli tentang file tanpa ekstensi, sehingga dapat diabaikan atau dimasukkan ke dalam satu kategori.
Saya sudah membaca halaman manual ls
, du
dan find
, tapi saya tidak tahu apa alat yang tepat untuk pekerjaan ini ...
sumber
Jawaban:
Pada sistem GNU:
Atau sama dengan
perl
, menghindari-printf
ekstensi GNUfind
(masih menggunakan ekstensi GNU-print0
,, tetapi yang ini lebih banyak didukung saat ini):Ini memberikan output seperti:
Jika Anda ingin
KiB
,MiB
... sufiks, pipa kenumfmt --to=iec-i --suffix=B
.%b*512
memberikan penggunaan disk, tetapi perhatikan bahwa jika file ditautkan beberapa kali, mereka akan dihitung beberapa kali sehingga Anda dapat melihat perbedaan dengandu
laporan apa .sumber
-printf
khusus untuk GNUfind
, itulah sebabnya saya katakan pada sistem GNU .perl
alternatif yang seharusnya berfungsi bahkan pada macOS.Ini solusi lain:
Bagian yang mendapatkan ekstensi adalah:
Selanjutnya cari file dengan ekstensi dan cetak di layar juga:
Selanjutnya kita ingin menyimpan ekstensi dan totalnya:
dan simpan di baris yang sama:
sumber
Tidak sebagus solusi Stephane, tetapi Anda bisa mencobanya
di mana Anda harus menjalankan ini untuk setiap jenis file.
sumber
du
doa dijalankan. Dengan GNUxargs
, Anda ingin menambahkan-r
flag sehingga du tidak berjalan ketika tidak ada file (jika tidak, Anda akan berakhir dengan penggunaan disk direktori saat ini). Anda mungkin ingin menambahkan-type f
atau! type d
untuk menghindari penghitungan file yang ada di direktori yang namanya berakhir.png
.