जवाबों:
के साथ नहीं mv
।
mv
(इसके नाम के बावजूद) का मुख्य कार्य किसी वस्तु का नाम बदलना है। UNIX द्वारा की गई गारंटियों में से एक यह है कि नामकरण परमाणु हैं - आपको कभी भी आंशिक रूप से पूरा नाम बदलने की अनुमति नहीं है। यह गारंटी बहुत उपयोगी हो सकती है यदि आप किसी फ़ाइल को बदलना चाहते हैं ( /etc/passwd
उदाहरण के लिए) जिसे अन्य प्रोग्राम देख रहे हैं, और आप उन्हें फ़ाइल के पुराने या नए संस्करण को देखना चाहते हैं, और कोई अन्य संभावना नहीं है । लेकिन जैसा कि आप वर्णन करते हैं एक "पुनरावर्ती नाम" उस गारंटी को तोड़ देगा - आप इसे बीच में रोक सकते हैं और आपके पास आधा-आधा पेड़ होगा और शायद एक गड़बड़ होगी - और इसलिए यह वास्तव में दर्शन के साथ फिट नहीं है का है mv
। यही कारण है कि मेरा mv -r
अस्तित्व क्यों नहीं है।
(ऐसा मन कभी न करें जो mv
उस दर्शन को दूसरे, छोटे तरीकों से तोड़ता है। उदाहरण के लिए, mv
वास्तव में एक फाइलसिस्टम से दूसरे फाइल को ले जाने पर cp
उसका अनुसरण होता है rm
।)
पर्याप्त दर्शन। यदि आप पुनरावृत्ति करना चाहते हैं ("ड्रैग-ड्रॉप") एक पेड़ से एक ही फाइल सिस्टम पर एक स्थान से दूसरे स्थान पर , आप mv
निम्नानुसार दक्षता और गति प्राप्त कर सकते हैं (उदाहरण के लिए):
cp -al source/* dest/ && rm -r source/*
-l
करने के लिए ध्वज cp
का अर्थ है "के बजाय कॉपी करने की एक हार्ड लिंक बनाने" - यह प्रभावी रूप से एक नया फ़ाइल नाम बनाने है कि पुराने फ़ाइल नाम के रूप में एक ही फाइल के आंकड़ों के अंक। यह केवल फाइलसिस्टम पर काम करता है जो हार्ड लिंक का समर्थन करता है, हालांकि - इसलिए कोई भी देशी UNIX-ish फाइल सिस्टम ठीक है, लेकिन यह FAT के साथ काम नहीं करेगा।
&&
इसका मतलब है "केवल निम्न आदेश अगर पूर्ववर्ती आदेश सफल चलाने"। यदि आप चाहें, तो आप इसके बजाय एक समय में दो कमांड चला सकते हैं।
मुझे नहीं लगता कि आप जिस ड्रैग-ड्रॉप व्यवहार का वर्णन कर रहे हैं mv
, उसे दोहरा सकते हैं , क्योंकि लक्ष्य में गैर-रिक्त उपनिर्देशिकाएँ प्रतिस्थापित नहीं की जाएंगी।
शायद rsync
? कुछ पसंद है rsync -a -r source/ target/
? साथ चलाने के लिए -v -n
करने के लिए एक अत्यधिक शब्द सूखी रन पहले यकीन है कि यह आप क्या चाहते हैं करता है बनाने के लिए।
आप शायद इसका सही उत्तर बदलना चाहते हैं:
https://github.com/iaindooley/pickdrop
उदाहरण:
मेरा कहना है:
test/
test/index.php
test/images/
test/images/a.jpg
test/images/thing.png
और मैं इन चीजों को / साइट पर ले जाना चाहता हूं
तो ऐसा लगता है:
site/
site/public/
site/public/index.php
site/public/a.jpg
site/public/thing.png
मैं जा सकता हूँ:
cd images &&
pick a.jpg thing.png
cd .. &&
pick index.php &&
cd .. &&
mkdir site &&
mkdir site/public &&
cd site/public &&
drop
यह वस्तुतः कट और पेस्ट है।