আমার কিছু ফোল্ডার রয়েছে যার সাথে \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