Saya ingin mengambil hasil dari perintah ini:
find . -type f -size +200M -exec ls -lh {} \;
simpan konten ke variabel dari beberapa bentuk, dan kemudian hapus file yang ditemukan.
Bagaimana saya bisa melakukan ini?
Saya ingin mengambil hasil dari perintah ini:
find . -type f -size +200M -exec ls -lh {} \;
simpan konten ke variabel dari beberapa bentuk, dan kemudian hapus file yang ditemukan.
Bagaimana saya bisa melakukan ini?
Jawaban:
Anda tidak perlu menyimpan hasil find dalam variabel hanya untuk dapat menghapus file (kecuali Anda memiliki beberapa persyaratan khusus yang tidak Anda sebutkan), sebagai find menyediakan spesial -delete parameter yang akan melakukannya untuk Anda:
find . -type f -size +200M -print -delete
Sebagai parsing output dari ls perintah tidak disarankan .
Jika Anda benar-benar ingin mem-parsing file yang dikembalikan oleh find, Anda perlu melakukan sesuatu seperti:
find . -type f -size +200M -print0 | xargs -0 rm -v
Karena Anda tidak dapat menyimpan variabel shell dengan karakter nol, dan Anda tidak ingin memecah skrip pada spasi (yang dapat menyebabkan serangga raksasa ), solusinya dapat menyimpan daftar dalam file sementara atau membuat serialisasi data base64 ).