आप किसी फ़ाइल (निर्देशिका या जो भी) का उपयोग कर केवल इनोड के ज्ञान का उपयोग करके नाम बदल सकते हैं find
, लेकिन अगर (ए) युक्त फाइल सिस्टम माउंट नहीं है, या यदि (बी) एक और फाइल-सिस्टम है जो एक गैर-खाली निर्देशिका पर माउंट किया गया है जिसमें शामिल है आप जिस फ़ाइल में रुचि रखते हैं, वह फ़ाइल आपके सिस्टम द्वारा आसानी से उपलब्ध नहीं है। मामले में (ए), आपको फ़ाइल सिस्टम को माउंट करने की आवश्यकता है इससे पहले कि आप सामग्री का कुछ भी कर सकते हैं, जिसमें नामकरण भी शामिल है, और मामले में (बी), आपको उस फाइल सिस्टम को अनमाउंट करने की आवश्यकता है जो "युक्त" निर्देशिका के शीर्ष पर स्थित है। वह फ़ाइल जिसका आप नाम बदलना चाहते हैं। ऐसा लगता है कि आप मामले (ख) के बारे में पूछ रहे हैं।
यदि मैं आपको सही ढंग से समझता हूं, तो आप अपनी पुरानी /home
निर्देशिका (जो आपके रूट विभाजन पर स्थित है) को सुलभ बनाने की कोशिश कर रहे हैं , जबकि अभी भी अपने नए ट्रांसफ़ॉर्म का उपयोग कर रहे हैं /home
। यदि आप चाहते हैं कि, निम्नलिखित करें:
सभी फाइलें बंद करें और लॉग आउट करें। इसके बाद लॉग इन root
करें (इसके लिए वर्चुअल टर्मिनल का उपयोग करें- Ctrl-Alt-F2 दबाएं) निम्नलिखित चलाएँ:
umount /home
mv /home /home-old
mkdir /home
mount -a
ls /home
ls /home-old
यदि सब ठीक है, तो लॉग आउट करें और अपने आप को वापस लॉग इन करें और सब ठीक होना चाहिए।
संयोग से, किसी फ़ाइल को उसके इनोड के केवल ज्ञान का उपयोग करके नाम बदलने का आदेश दिया गया है (यह मानते हुए कि फ़ाइल वर्तमान निर्देशिका में है):
find . -maxdepth 1 -inum 123456789 -exec mv {} mynewname \;
123456789
इनकोड संख्या कहां है, निश्चित रूप से। (ध्यान दें कि find
फ़ाइल नाम और उसका पथ निर्धारित करता है और इस जानकारी को पास करता है mv
; मौजूदा फ़ाइल नाम को शामिल किए बिना किसी फ़ाइल का नाम बदलने का कोई तरीका नहीं है, लेकिन अगर यह सिर्फ यह है कि आप फ़ाइल नाम को नहीं जानते हैं , तो यह काफी है सरल।)