मैं "rm: हटाने के लिए नियमित फ़ाइल [x]?"
मैं एक चरित्र को जारी करने के बारे में सोच रहा था, जिसके बाद कई बार बैशकेन में गाड़ी की वापसी हुई। हम यह कैसे करे?
मैं "rm: हटाने के लिए नियमित फ़ाइल [x]?"
मैं एक चरित्र को जारी करने के बारे में सोच रहा था, जिसके बाद कई बार बैशकेन में गाड़ी की वापसी हुई। हम यह कैसे करे?
जवाबों:
अद्यतन प्रश्न के आधार पर संपादित करें:
फ़ाइलों को हटाने के बारे में पूछे जाने से बचने के लिए, -f("बल") विकल्प जोड़ें:
rm -f /path/to/file
इसका एक साइड इफेक्ट है जो आपको पता होना चाहिए: यदि दिए गए रास्तों में से कोई भी मौजूद नहीं है, तो यह रिपोर्ट नहीं करेगा , और यह सफलतापूर्वक वापस आ जाएगा:
$ rm -f /nonexistent/path
$ echo $?
0
मूल उत्तर:
यहाँ एक सरल उपाय है:
yes "$string" | head -n $number | tr $'\n' $'\r'
yesकिसी भी स्ट्रिंग को दोहराता है, जिसे आप असीम रूप से देते हैं, जिसे न्यूलाइन्स द्वारा अलग किया जाता है। समय के headबाद इसे रोक देता है $number, और trगाड़ी की वापसी के लिए नई लाइनों का अनुवाद करता है। हो सकता है कि आपको गाड़ी के रिटर्न के कारण कोई आउटपुट न दिखाई दे, लेकिन इसे इस कमांड में भेजना (इसमें bash) इसे स्पष्ट करना चाहिए:
printf %q "$(yes "$string" | head -n $number | tr $'\n' $'\r')"
बिना bashउपयोग किए उपयोगकर्ता परिणाम को वापस कर सकते हैं od, hexdumpया xxdवास्तविक वर्णों को वापस देख सकते हैं।
मैंने समय-समय पर जो दूसरा मुद्दा चलाया है, वह rmयह है कि rm -iकुछ इस तरह से / etc / bashrc में है:
alias rm='rm -i'
उस स्थिति में unalias rmया तो आप इस ट्रिक का उपयोग कर सकते हैं, जो मुझे सालों पहले पता चला था, एक उपनाम के सामने एक बैकस्लैश रखा था, जो उर्फ को अनदेखा करने के लिए सिर्फ एक बार, उदाहरण के लिए:
\rm somefile
आप निक्सन के एक लेख के माध्यम से उपनामों के बारे में अधिक जान सकते हैं ।
rmलिखना सुरक्षित फ़ाइलों पर "अंतःक्रियात्मक" (उपयोगकर्ता इनपुट के लिए शीघ्र प्रतीक्षा) पूछने के लिए हार्डकोड है। rmपूछने से रोकने के दो तरीके हैं :
rm -rf somedir
तथा
rm -r --interactive=never somedir
(दोनों -rडायरियों के बजाय फाइल डिलीट किए बिना भी काम करते हैं )
स्पष्टीकरण:
-fबनाता है rm"अस्तित्वहीन फ़ाइलें और तर्कों की अनदेखी, कभी नहीं का संकेत करने के लिए"।
--interactive=neverयह क्या कहता है: इंटरैक्टिव कभी नहीं। दूसरे शब्दों में: कभी संकेत नहीं।
के बीच का अंतर -fऔर --interactive=never"अस्तित्वहीन फ़ाइलें और तर्कों पर ध्यान न दें": इस हिस्सा है।
तुलना:
$ rm -rf nonexistingname
$ echo $?
0
तथा
$ rm -r --interactive=never nonexistingname
rm: cannot remove 'nonexistingname': No such file or directory
$ echo $?
1
अंतर मुख्य रूप से स्क्रिप्ट लिखते समय दिलचस्प है जहां आप कभी rmभी इंटरएक्टिव नहीं होना चाहते हैं, लेकिन फिर भी त्रुटियों को संभालना चाहते हैं।
सारांश: कमांड लाइन के उपयोग पर rm -rf। लिपियों में उपयोग करते हैं rm -r --interactive=never।
उक्त प्रश्न के उत्तर के लिए ("संरक्षित फ़ाइल निकालते समय कई बार" y "जारी करने की आवश्यकता से कैसे बचें") https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line देखें / 338,860 # 338,860
मैं भी उसी मुद्दे पर भाग गया। उपरोक्त उत्तर सिर्फ एक फ़ाइल के लिए है, लेकिन यदि आप बहुत सारी हाँ को अनदेखा करना चाहते हैं।
आप उपयोग कर सकते हैं
sudo rm -r /path/to/directory
सभी को हटाने के लिए संरक्षित नियमित फ़ाइल लिखें