मैं "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
सभी को हटाने के लिए संरक्षित नियमित फ़ाइल लिखें