Saya memiliki beberapa folder dengan \n
karakter itu nama mereka.
sebagai contoh:
$ ls
''$'\n''Test'
Thats merujuk ke folder dengan nama Tes dan baris kosong sebelum namanya.
Jadi ketika saya menjalankan beberapa skrip seperti ini, di direktori induknya:
while IFS= read -r d; do
rmdir $d
done < <(find * -type d)
Itu menunjukkan:
rmdir: failed to remove '': No such file or directory
rmdir: failed to remove 'Test': No such file or directory
Karena berjalan dua kali, sekali aktif \n
dan yang lain aktif Test
, karena nama folder memiliki dua baris.
Jadi bagaimana saya bisa mengatasi masalah ini sehingga, skrip tahu \nTest
hanya satu folder?
find * -type d -print0 | while IFS= read -d '' file ; do rmdir $file ; done
perintah memiliki output ini rmdir: failed to remove 'Test': No such file or directory
.
rmdir "$file"
-print0
arahan find , dan-d
opsi baca. Lihat stackoverflow.com/a/40189667/7552