Bagaimana jika kita membiarkan find menangani nama file?
find . -maxdepth 1 -iname '*syed*' -exec du -ch {} +
Bagaimana dengan ini?:
find . -maxdepth 1 -iname '*syed*' -print0 | xargs -0 du -ch
Penjelasan opsi:
find
– Apa yang Anda gunakan untuk menemukan file-print0
– Pisahkan setiap hasil dengan karakter nol, yang merupakan karakter yang tidak dapat muncul dalam nama file
xargs
– Merakit argumen ke perintah yang disalurkan dari input standar (stdin)-0
– Menerima setiap argumen yang dibagi dengan karakter noldu -ch
– Perintah yang ingin Anda berikan argumen file
Adapun mengapa Anda mengusulkan sed
cara melarikan diri tidak berhasil, \
karakter yang Anda coba tambahkan dimasukkan setelah pembatas argumen shell (" ") melarikan diri telah terjadi. Setiap kata, dibatasi oleh spasi, sudah menjadi argumen.
Solusi saya dengan xargs
memastikan bahwa setiap argumen adalah jalur dari find
, terlepas dari spasi.