Saya memiliki beberapa folder dengan \nkarakter 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 \ndan yang lain aktif Test, karena nama folder memiliki dua baris.
Jadi bagaimana saya bisa mengatasi masalah ini sehingga, skrip tahu \nTesthanya satu folder?
find * -type d -print0 | while IFS= read -d '' file ; do rmdir $file ; doneperintah memiliki output ini rmdir: failed to remove 'Test': No such file or directory.
rmdir "$file"
-print0arahan find , dan-dopsi baca. Lihat stackoverflow.com/a/40189667/7552