Daftar file dalam subdirektori tertentu


0

Saya memiliki struktur folder seperti ini:

/1/a/x
/1/b/y
/2/a/z
/2/b/d
/3/a/r
/3/b/e

Saya ingin daftar file + filesize untuk semua file dalam subfolder di folder 'a'. Saya sudah mencoba menggunakan find tetapi macet. Apa perintah yang benar?

Jawaban:


1

Untuk mencetak ukuran dan path lengkap, coba ini.

find /[123]/a/* -type f -printf '%s %p\n'

Lihat man findstring format lain yang dapat Anda gunakan -printf. Secara khusus, Anda mungkin ingin %Patau %fbukannya %pdan mungkin %bbukan %s.

[123]cocok dengan nama yang merupakan digit tunggal dalam kisaran 1-3; mungkin memperluas *atau sesuatu yang sedikit lebih dibatasi jika contoh Anda tidak persis sesuai dengan kenyataan yang Anda coba gambarkan.

GNU findharus menjadi standar pada CentOS tetapi jika Anda membutuhkan kode portabel yang tepat, mungkin gunakan find ... -exec stat {} \;(tetapi perhatikan bahwa statjuga memiliki masalah portabilitas; perintah harus ada pada sebagian besar platform tetapi bagaimana cara membuatnya mencetak sesuatu yang spesifik bervariasi antara implementasi). Pilihan lain adalah find ... -lstetapi kemudian Anda menentang parsing ls.

Jika Anda tidak perlu melintasi subdirektori, Anda tidak perlu find.

stat -c '%s %n\n' /[123]/a/*/*

1
Anda mungkin ingin menambahkan bahwa jika penanya perlu memindai direktori yang disebutkan di abawah subdirektori tingkat pertama, ia akan perlu find /[123]/ -type f -path '*/a/*' ....
AFH
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.