Ben \nonların adı ile karakter bazı klasörler var .
Örneğin:
$ ls
''$'\n''Test'
Bu, Test adı ve adından önce boş bir satırı olan bir klasöre başvurur.
Bu nedenle, üst dizininde böyle bazı komut dosyaları çalıştırdığımda:
while IFS= read -r d; do
rmdir $d
done < <(find * -type d)
Gösteriyor:
rmdir: failed to remove '': No such file or directory
rmdir: failed to remove 'Test': No such file or directory
Klasör adının iki satırı olduğu için iki kez, biri açık \ndiğeri açık olarak çalıştığı için Test.
Peki bu sorunu nasıl çözebilirim, script \nTestsadece bir klasör olduğunu biliyor mu?
find * -type d -print0 | while IFS= read -d '' file ; do rmdir $file ; donekomut bu çıktıya sahiptir rmdir: failed to remove 'Test': No such file or directory.
rmdir "$file"
-print0Find yönergesini ve-dokuma seçeneğini kullanmanız gerekir . Bkz. Stackoverflow.com/a/40189667/7552