मैंने अभी एक भ्रामक त्रुटि पकड़ी है:
rm: cannot remove `xxx/app/cache/prod': Directory not empty
जो निम्न आदेश के कारण था:
rm -rf $cache_dir/*
जहां $cache_dir
के रूप में परिभाषित किया गया हैxxx/app/cache
इसलिए मैं इसे देखता हूं: dir rm
में सब कुछ हटा दिया cache/prod
, फिर cache/prod
निर्देशिका को हटाने का प्रयास करने से ठीक पहले - एक अन्य कार्यक्रम ने इसके अंदर एक फ़ाइल / एक निर्देशिका बनाई जिससे यह rm
विफलता का कारण बना ।
क्या मेरी धारणा सही है?
rm -rf
थ्रेड सुरक्षित होने से कोई लेना-देना नहीं है : यदि आप इसे एक ही निर्देशिका में कई बार समवर्ती रूप से चलाते हैं, तो निर्देशिका हटा दी जाती है। यह rm -r
परमाणु नहीं होने के बारे में है ।
rm
आह्वान के रूप में मानते हैं , तो हम धागा-सुरक्षा के बारे में बोल सकते हैं। लेकिन वैसे भी, यह कुछ भी नहीं बदलता है
rm -r
परमाणु नहीं है। यदि आप यह सुनिश्चित करना चाहते हैं किrm -rf
दौड़ने के दौरान निर्देशिका में कोई और फाइल न बने , तो आप इसे पहले नाम बदल सकते हैं, फिर नाम बदलने वाली निर्देशिका को हटा सकते हैं।