rm -rf
फ़ाइलों या निर्देशिकाओं को हटाने के लिए क्या किया जाता है?
कैसे करते -r
और -f
विकल्प एक साथ काम?
rm -rf
फ़ाइलों या निर्देशिकाओं को हटाने के लिए क्या किया जाता है?
कैसे करते -r
और -f
विकल्प एक साथ काम?
जवाबों:
आदेश के rm -rf
रूप में ही है rm -r -f
।
से rm
की आदमी पेज (प्रकार man rm
एक टर्मिनल में यह देखने के लिए) -r
करता है:
remove directories and their contents recursively
और -f
करता है:
ignore nonexistent files and arguments, never prompt
इसलिए संयोजन में वे दोनों करते हैं।
कृपया इस कमांड का उपयोग सावधानी से करें!
rm -rf /
सैद्धांतिक रूप से आपके कंप्यूटर पर हर उस फ़ाइल को हटा देगा जो उस निर्देशिका में रहती है जिसके लिए आपने अनुमति लिखी है। यदि आप जड़ हैं, तो इसका मतलब है कि पूरे सिस्टम को मिटा देना। (व्यवहार में, यह काम नहीं करता है क्योंकि जीएनयू के rm
पास एक विशेष मामला है जो rm -r /
आपको तब तक अनुमति देने से इनकार करता है जब तक आप भी नहीं कहते --no-preserve-root
।)
rm -rf /
यह देखने की कोशिश नहीं कर रहा हूं कि क्या यह ठीक से पकड़ा गया है।
पिछले सही उत्तर के अलावा, मैं आपको मछली कैसे सिखाऊं:
जब आप इस बारे में निश्चित नहीं होते हैं कि एक कमांड कैसे काम करता है, तो क्या विकल्प हैं और यह क्या करता है, एक टर्मिनल खोलें और टाइप करें
man <command>
उदाहरण के लिए:
man rm
वहां पहुंचने के बाद, आप विकल्प खोज सकते हैं। एक आदमी पृष्ठ वास्तव में पढ़ने के लिए लंबा हो सकता है, इसलिए टर्मिनल प्रकार में:
/<pattern>
इसलिए, उदाहरण के लिए:
/-f
आप आसानी से उतर सकते हैं:
-f, --force
ignore nonexistent files and arguments, never prompt
For -r do:
-r, -R, --recursive
remove directories and their contents recursively
आप n
(अगले) और N
(पिछले) का उपयोग करके खोज परिणामों के बीच स्थानांतरित कर सकते हैं ।
यदि आपको कुछ करने की आवश्यकता है, लेकिन आप कमांड नाम नहीं जानते हैं, तो apropos
मैन पेजों में खोजने के लिए उपयोग करें:
apropos <pattern>
उदाहरण के लिए:
apropos directory listing
rm
निकालने के लिए छोटा है। r
झंडा निकालें निर्देशिका और उनकी सामग्री रिकर्सिवली और करने के लिए है f
साधन बल, और यह किसी भी पुष्टि संकेतों ओवरराइड करता है।
r flag is to remove directories
सही नहीं है। यह अपनी सामग्री के साथ निर्देशिकाओं को हटाता है, यह एक पुनरावर्ती ऑपरेशन है। आपके शब्दों के अनुसार, यह केवल निर्देशिकाओं को हटा देगा, इसके तहत उपखंड, फाइलों के बारे में क्या? चूंकि डायरेक्टरी एंट्री में केवल नाम-इनोड मैपिंग शामिल है, इससे केवल कोई मतलब नहीं है ..
जैसा कि पहले ही उल्लेख किया गया है, rm -rf <ARG>
फ़ाइलों को बलपूर्वक हटाने के लिए है, जहां <ARG>
एक निर्देशिका है (हालांकि यह एक फ़ाइल ठीक हो सकती है)।
-r
(पुनरावर्ती निष्कासन) की पूरी बात यह है कि rm
यदि वे खाली नहीं हैं, तो निर्देशिकाओं को हटा नहीं सकते हैं, क्योंकि अंतर्निहित सिस्टम कॉल जो rm
उपयोग करता है ( अनलिंक ) केवल खाली निर्देशिकाओं पर काम करता है । इस प्रकार, -r
ध्वज क्या करता है, गहराई-पहली खोज है जो निर्देशिकाओं में उतरती है और पहले फाइलें निकालती है, और केवल तब जब निर्देशिका खाली होती है - यह इसे हटा देगा। इसी प्रभाव को ध्वज के find
साथ कमांड के माध्यम से प्राप्त किया जाता है -delete
(जब आप फ़िल्टरिंग को निर्दिष्ट नहीं करते हैं -type
, लेकिन यह एक और कहानी है)।
के रूप में -f
, यह दो चीजें करता है - एक आप को हटाने के लिए रोकता है कि क्या आप फ़ाइल को हटाना चाहते हैं या नहीं (जैसे कि जब आप किसी फ़ाइल को किसी अन्य उपयोगकर्ता के स्वामित्व वाली अपनी निर्देशिका से निकाल रहे हैं, तो यह rm: remove write-protected regular empty file 'f1'?
पुष्टिकरण संकेत नहीं दिखाएगा ), और अनदेखा करता है गैर-मौजूदा फ़ाइलें। उदाहरण के लिए, गैर-मौजूद फ़ाइल नाम के साथ, आपको rm: cannot remove 'nonexistent': No such file or directory
त्रुटि मिलनी चाहिए ।
यह भी देखें: