এর বেশ কয়েকটি সম্ভাব্য কারণ রয়েছে।
1)
আপনি এটিকে কেবল ডিরেক্টরিগুলি ( -type d
) মুছতে বলেছিলেন এবং সেই ডিরেক্টরিগুলির মধ্যে এখনও ফাইল রয়েছে।
2)
আপনার ডিরেক্টরিতে কেবল অন্যান্য ডিরেক্টরি রয়েছে, সুতরাং -type d
বিষয়বস্তু ইস্যুটি যত্ন নেবে। তবে আপনি ওএস-এক্স ব্যবহার করছেন যা মূলত ফ্রিবিএসডি এর উপর ভিত্তি করে এবং ফ্রিবিএসডি find
ডিফল্টরূপে ডিরেক্টরিটির বিষয়বস্তুগুলির আগে প্রক্রিয়াজাত করবে।
যাইহোক -depth
বিকল্পটি find
বিষয়বস্তুগুলির পরে ডিরেক্টরিটি প্রক্রিয়া করার মাধ্যমে এই সমস্যাটি সমাধান করার জন্য বিদ্যমান ।
find ~ -name __pycache__ -type d -ls -delete -depth
এই সমস্যাটি লিনাক্সে বিদ্যমান নেই কারণ -delete
বিকল্পটি সুস্পষ্টভাবে সক্ষম করে -depth
।
ফ্রিবিএসডি man 1 find
:
-depth Always true; same as the non-portable -d option. Cause find to
perform a depth-first traversal, i.e., directories are visited in
post-order and all entries in a directory will be acted on before
the directory itself. By default, find visits directories in
pre-order, i.e., before their contents. Note, the default is not
a breadth-first traversal.
জিএনইউ man 1 find
:
-depth Process each directory's contents before the directory itself. The -delete
action also implies -depth.
find ~ -path '*/__pycache__*' -delete
, অথবা সম্ভবতfind ~ -path '*/__pycache__/*' -o -name __pycache__ -delete
নিরাপদ থাকতে হবে।