Menggunakan gnu find, saya rasa inilah yang Anda inginkan. Ia menemukan semua file nyata dan bukan direktori (-tipe f), dan untuk masing-masing mencetak nama file (% p), tab (\ t), ukuran dalam kilobyte (% k), sufiks "KB", dan kemudian baris baru (\ n).
find . -type f -printf '%p\t%k KB\n'
Jika perintah printf tidak memformat hal-hal yang Anda inginkan, Anda dapat menggunakan exec, diikuti dengan perintah yang ingin Anda jalankan pada setiap file. Gunakan {} untuk nama file, dan akhiri perintah dengan titik koma (;). Pada kebanyakan shell, ketiga karakter tersebut harus di-escape dengan garis miring terbalik.
Berikut solusi sederhana yang menemukan dan mencetaknya menggunakan "ls -lh", yang akan menunjukkan ukuran dalam bentuk yang dapat dibaca manusia (k untuk kilobyte, M untuk megabyte):
find . -type f -exec ls -lh \{\} \;
Sebagai alternatif lain, "wc -c" akan mencetak jumlah karakter (byte) dalam file:
find . -type f -exec wc -c \{\} \;
find . -name '*.ear' -exec ls -lh {} + \;
(ekstensi GNU) ataufind . -name '*.ear' -print0 | xargs -0 ls -lh
. Anda juga mungkin ingin menambahkan-type f
jika Anda hanya tertarik pada file (atau menambahkan-d
ke ls jika Anda ingin direktori itu sendiri disertakan tanpa isinya).