Gnu bul kullanarak, bence istediğiniz bu. Dizinleri değil (-tip f) tüm gerçek dosyaları bulur ve her biri için dosya adı (% p), bir sekme (\ t), kilobayt cinsinden boyut (% k), "KB" soneki ve ardından yeni satır (\ n).
find . -type f -printf '%p\t%k KB\n'
Printf komutu işleri istediğiniz şekilde biçimlendirmezse, exec ve ardından her dosyada yürütmek istediğiniz komutu kullanabilirsiniz. Dosya adı için {} kullanın ve komutu noktalı virgülle (;) sonlandırın. Çoğu mermide, bu karakterlerin üçünün de ters eğik çizgi ile kaçması gerekir.
Burada, "ls -lh" kullanarak bunları bulup yazdıran basit bir çözüm, size boyutu insan tarafından okunabilir biçimde gösterecek (kilobayt için k, megabayt için M):
find . -type f -exec ls -lh \{\} \;
Yine bir başka alternatif olarak, "wc -c" dosyadaki karakter sayısını (bayt) yazdıracaktır:
find . -type f -exec wc -c \{\} \;
find . -name '*.ear' -exec ls -lh {} + \;
(GNU uzantısı) veyafind . -name '*.ear' -print0 | xargs -0 ls -lh
. Ayrıca-type f
, yalnızca dosyalarla ilgileniyorsanız eklemek-d
isteyebilirsiniz (veya dizinlerin içerikleri olmadan kendilerinin de dahil edilmesini istiyorsanız ls'ye ekleyin ).