আমার কিছু ফোল্ডার রয়েছে যার সাথে \nএটির নাম রয়েছে।
উদাহরণ স্বরূপ:
$ ls
''$'\n''Test'
এটি টেস্টের নামযুক্ত কোনও ফোল্ডার এবং এর নামের আগে একটি খালি রেখা উল্লেখ করে।
সুতরাং আমি যখন এর স্ক্রিপ্টগুলি এর মূল ডিরেক্টরিতে এটি চালাই:
while IFS= read -r d; do
rmdir $d
done < <(find * -type d)
এটা দেখায়:
rmdir: failed to remove '': No such file or directory
rmdir: failed to remove 'Test': No such file or directory
কারণ এটি দু'বার চলে, একবার \nএবং অন্যটি Test, কারণ ফোল্ডারের নামটিতে দুটি লাইন রয়েছে।
সুতরাং আমি এই সমস্যাটিকে কীভাবে সমাধান করতে পারি, স্ক্রিপ্টটি জানেন \nTestকেবল একটি ফোল্ডার?
find * -type d -print0 | while IFS= read -d '' file ; do rmdir $file ; doneকমান্ডের এই আউটপুট রয়েছে rmdir: failed to remove 'Test': No such file or directory।
rmdir "$file"
-print0সন্ধানের নির্দেশিকা এবং-dপঠন বিকল্পটি ব্যবহার করতে হবে । দেখুন stackoverflow.com/a/40189667/7552