Zm में डबल आरएम सत्यापन


16

जब मैं rm * zsh में करता हूं, तो मुझे कुछ ऐसा मिलता है:

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

पहले zsh मुझसे पूछते हैं कि क्या मुझे यकीन है कि मैं सभी को हटाना चाहता हूं, और फिर आरएम प्रत्येक विशिष्ट फ़ाइल के लिए पूछता है।

मेरे पास केवल zsh सत्यापन कैसे हो सकता है?


3
का उपयोग करें rm -f ./*rmजब तक आपके पास फ़ाइल की अनुमति न हो, तब तक डिफ़ॉल्ट रूप से कुछ भी नहीं पूछता है। हो सकता है कि आपके पासalias rm='rm -i'
स्टीफन चेज़लस

ओह, यह होना चाहिए - मैं एक वैगन्रेंट शेल के भीतर से डिलीट को चला रहा हूं, और फाइल को लैपटॉप फाइल सिस्टम पर होस्ट किया जाता है। धन्यवाद
ardochhigh

2
बस एक नोट, zsh अभी भी "rm -rf *" पर प्रॉमिस करता है, इसे इसके साथ डिसेबल किया जा सकता हैsetopt rmstarsilent
मैट

जवाबों:


30

संदेश "zsh: सुनिश्चित करें कि आप सभी फ़ाइलों को हटाना चाहते हैं" एक zsh विशेषता है, विशेष रूप से rmएक तर्क के साथ एक कमांड को आमंत्रित करके ट्रिगर किया गया है जो ग्लोब विस्तार से पहले *या something/*उसके पास है। आप इसे बंद कर सकते हैं setopt rm_star_silent

संदेश "आरएम: नियमित फ़ाइल हटाएं" rmकमांड से ही आता है। यह डिफ़ॉल्ट रूप से नहीं दिखाई देगा, यह केवल तब दिखाई देता है जब rmविकल्प के साथ इनवॉइस किया जाता है -i। यदि आप यह संदेश नहीं चाहते हैं, तो वह विकल्प न दें। इसके बिना भी -i, rmपुष्टि के लिए संकेत देता है (एक अलग संदेश के साथ) यदि आप केवल-पढ़ने के लिए फ़ाइल को हटाने का प्रयास करते हैं; आप विकल्प को पास करके इस पुष्टि को हटा सकते हैं -f

चूंकि आप -iकमांड लाइन पर पास नहीं हुए थे, rmइसलिए संभवतः इसके लिए एक उपनाम है rm -i(यह एक फ़ंक्शन, एक गैर-मानक आवरण कमांड या एक अलग उपनाम भी हो सकता है, लेकिन उपनाम rm -iअब तक सबसे प्रशंसनीय है)। कुछ डिफ़ॉल्ट कॉन्फ़िगरेशन alias rm='rm -i'उनके शेल आरंभीकरण फ़ाइलों में शामिल हैं; यह कुछ ऐसा हो सकता है जो आपके वितरण या आपके सिस्टम प्रशासक ने सेट किया है, या ऐसा कुछ जिसे आपने कहीं से उठाया है और अपनी कॉन्फ़िगरेशन फ़ाइल में जोड़ा है तो भूल गए। के ~/.zshrcलिए एक उपनाम परिभाषा के लिए अपनी जाँच करें rm। यदि आप एक पाते हैं, तो इसे हटा दें। यदि आपको एक नहीं मिलता है, तो उपनाम निकालने के लिए एक कमांड जोड़ें:

unalias rm

6

डबल सत्यापन को अक्षम करने का सही आदेश लगता है setopt rm_star_silent। दोहरे सत्यापन को सक्षम करने के लिए setopt no_rm_star_silent

अधिक विस्तृत जानकारी के लिए zshoptions man zshoptionsया http://linux.die.net/man/1/zshoptions के मैन पेज को देखें


याunsetopt rm_star_silent
evandrix

1

यदि आप oh-my-zsh tthe का उपयोग कर रहे हैं तो सामान्य उपनाम प्लग-इन में rm -i उपनाम शामिल है।

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh


1
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को यहां शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं। - समीक्षा से
jayhendren

@ Ajhendren - यह दस्तावेज़ीकरण की एक कड़ी नहीं है, यह समस्या को ठीक करने के लिए स्थापित करने के लिए किसी चीज़ का लिंक है ...
Wouter Verhelst
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.