मेरे पास एक ही मूल निर्देशिका में दो निर्देशिका हैं। मूल निर्देशिका आधार और बच्चों निर्देशिका अल्फा और ब्रावो पर कॉल करें। मैं अल्फाब्रेवो के साथ प्रतिस्थापित करना चाहता हूं। सबसे सरल तरीका है:एक निर्देशिका को परमाणु रूप से
rm -rf alpha
mv bravo alpha
एमवी कमांड परमाणु है, लेकिन आरएम-आरएफ नहीं है। अल्फा पर ब्रावो के साथ परमाणु रूप से प्रतिस्थापित करने का एक आसान तरीका है? यदि नहीं, तो क्या कोई जटिल तरीका है?
परिशिष्ट:
से करके, यह एक दुर्गम समस्या नहीं है अगर निर्देशिका एक छोटी अवधि के लिए मौजूद नहीं है। अल्फा तक पहुंचने का प्रयास करने वाली केवल एक ही जगह है, और यह जांचता है कि क्या कुछ भी महत्वपूर्ण करने से पहले अल्फा मौजूद है। यदि नहीं, तो यह एक त्रुटि संदेश देता है। लेकिन यह अच्छा होगा अगर ऐसा करने का कोई तरीका था। :) हो सकता है कि इनोड को सीधे संशोधित करने के लिए कुछ तरीका है, या कुछ ...
परिशिष्ट में आपका परीक्षण सुरक्षित नहीं है - वहाँ एक दौड़ शर्त है। विचार करें कि क्या होता है यदि चेक पहले चलता है (और अल्फा मौजूद है) और फिर दूसरी प्रक्रिया को अल्फा हटाते समय स्विच किया जाता है, और उसके बाद इसे अब जारी रखने के लिए स्विच किया जाता है, अल्फा अब गायब हो जाता है। – Oddthinking