मौजूदा फ़ाइल को अधिलेखित करने पर मैं बैश कैसे कर सकता हूं?


34

मुझे लगता है कि शीर्षक बहुत आत्म-व्याख्यात्मक है। सभी मैं चाहता हूँ मुझे चेतावनी देने के लिए जब भी मैं का उपयोग करते समय एक मौजूदा अधिलेखित करने के लिए प्रयास बैश है cpया mv। मैं वास्तव में कुछ मदद की सराहना करेंगे। :)

जवाबों:


43

आपको इंटरेक्टिव मोड का उपयोग करना चाहिए जो यह सुनिश्चित करता है कि आपको 'अधिलेखित होने से पहले संकेत' मिले

cp --interactive
mv --interactive

या संक्षेप में

cp -i
mv -i

टाइप करें man cpया man mvऔर अधिक जानकारी प्राप्त करने के लिए अपने कमांड लाइन पर।


2
इसलिए मुझे लगता है कि उन आज्ञाओं को मेरे .bashrc में भी उपनाम के रूप में जाना है। बहुत बहुत धन्यवाद। आपकी सहायता की सराहना। :)
सत्तनखान

3
वास्तव में! आप alias rm='rm -i'अपने .bashrc या अपने .bash_aliases की तरह कुछ जोड़ सकते हैं । पोस्ट में अधिक पढ़ें मैं एक स्थायी बैश उपनाम कैसे बनाऊं?
don.joey

2
लेकिन मैंने अभी कुछ सोचा है। मेरे द्वारा लिखी गई कुछ लिपियों के बारे में क्या। क्या वे अलियासिड सीपी और एमवी या सामान्य का उपयोग करेंगे?
सायंकालीन

@ बोल्ट 64 यह इस बात पर निर्भर करता है कि आपने अपनी दूसरी परिभाषा कहां रखी है, लेकिन आमतौर पर यह सामान्य का उपयोग करेगा।
जन वारचोल

12

आप भी set -o noclobberअपने .bashrc में डालना चाहते हैं । यदि आप किसी मौजूदा फ़ाइल को आउटपुट पुनर्निर्देशन द्वारा अधिलेखित करने का प्रयास करते हैं तो यह एक त्रुटि उत्पन्न करेगा।

$ set -o noclobber
$ echo one > afile
$ echo two > afile
bash: afile: cannot overwrite existing file

आप पुनर्निर्देशन को विशेष वाक्य रचना के साथ काम करने के लिए मजबूर कर सकते हैं:

$ echo two >| afile
$ cat afile
two

http://www.gnu.org/software/bash/manual/bashref.html#Redirecting-Output

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.