GNU/Linux >> Belajar Linux >  >> Linux

Periksa penggunaan disk dari file yang dikembalikan dengan spasi

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 nol
    • du -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.


Linux
  1. Periksa ruang disk yang digunakan di Linux dengan du

  2. Bagaimana Cara Menemukan File Dengan Subpath Tertentu?

  3. Temukan semua file dengan nama yang mengandung string

  1. Cara Menemukan File dengan Perintah fd di Linux

  2. Menghapus file dengan rm menggunakan find dan xargs

  3. temukan file dengan set ACL

  1. Temukan file dan tar (dengan spasi)

  2. Ulangi daftar file dengan spasi

  3. Buat daftar semua file gambar grafik dengan find?