जवाबों:
'Myfolder' नाम के फोल्डर के साथ और फाइल पदानुक्रम में एक स्तर ऊपर (वह बिंदु जिसे आप इसे रखना चाहते हैं) कमांड होगा:
mv myfolder/* .
उदाहरण के लिए डेटा में किया गया था, तो /home/myuser/myfolder
से तो /home/myuser/
कमांड चलाएँ।
.*
। मूल फ़ोल्डर को हटाना दोनों तुच्छ है और ऐसा नहीं पूछा जाता है ताकि हम ओपी को उसके / उसके साथ सौदा करने दें।
*
और .*
एक लाइन में? बस जिज्ञासा
mv
LAST तर्क को छोड़कर सभी के लिए तर्क स्रोत होंगे, जिन्हें आगे बढ़ने के लिए लक्ष्य होना चाहिए (और कई स्रोतों के मामले में, एक फ़ोल्डर होने की आवश्यकता है)।
/bin/mv: Argument list too long
बस इसे स्पष्ट करने के लिए, ऊपर दिए गए Rudu के उत्तर और टिप्पणियों से लिया गया।
यदि आपको सभी सामग्रियों को स्थानांतरित करने की आवश्यकता है, तो एक के साथ शुरू होने वाली फ़ाइलों को शामिल करना। (जैसे .htaccess, .git, आदि), आपको अपने कमांड में * और * दोनों को शामिल करने की आवश्यकता है। इस तरह:
mv subfolder/* subfolder/.* .
वह सबफ़ोल्डर की सामग्री को आपके वर्तमान फ़ोल्डर में ले जाएगा। अंतिम "" से पहले स्थान पर ध्यान दें।
mv: rename fake/. to ./.: Invalid argument
औरmv: rename fake/.. to ./..: Invalid argument
यह निम्नलिखित विधियों से संभव है:
का उपयोग कर rsync
:
rsync -vua --delete-after foo/ .
उपयोग करना cp
और rmdir
:
cp -vaR foo/. . && rmdir foo/
उपयोग करना mv
( dotglob
सक्षम विकल्प के साथ ):
shopt -s dotglob # Includes filenames beginning with a dot.
mv -- foo/* . # Where foo/ is the folder consisting the files.
shopt -u dotglob # Disables previously enabled dotglob option.
foo/
आपका फ़ोल्डर कहां है जिसकी सामग्री को एक स्तर ऊपर ले जाना है।
देखें: help shopt
और man bash
।
का उपयोग कर mv
(जैसा कि यहाँ सुझाव दिया गया है ):
mv foo/* foo/.[^.]* . && rmdir foo/
नोट: यह नामक एक फ़ाइल याद आती है foo/..bar..
।
नोट: POSIX गोले के लिए, आपको चाहिए [!.]
।
-v
, -u
, -a
और -r
कर? AFAICT, -v
वर्बोज़ है, जो बस rsync प्रिंट को अधिक जानकारी देता है। -u
अद्यतन का मतलब है - केवल एक फाइल कॉपी करें यदि यह नया है। यह प्रासंगिक नहीं लगता है। -a
संग्रह का मतलब है। जो फ़ाइल के स्वामी और अनुमतियों को कॉपी करेगा, और सिंक को पुनरावर्ती बना देगा। -r
पुनरावर्ती का मतलब है, लेकिन यह पहले से ही कवर किया गया है -a
।
-u
जब आप पहले से ही (विशेष रूप से धीमे भंडारण उपकरणों के लिए) चल रहे डेटा का अतिरिक्त समय खर्च नहीं करना चाहते हैं तो उपयोगी है। जैसा कि आपने उल्लेख किया है -r
, मैंने इसे हटा दिया है -a
।
mv foo/* foo/.[^.]* .
foo/..bar..
मिसाल के तौर पर बुलाए जाने वाली एक फाइल को मिस करेगा । ध्यान दें कि POSIX गोले के लिए, आपको चाहिए [!.]
।
rsync -vua --delete-after foo/ .
वर्तमान निर्देशिका में पहले से मौजूद हर चीज को हटा सकता है।
सिर्फ एक mv कमांड जारी करें
mv (directory)/* .
यदि आप निर्देशिका हटाना चाहते हैं तो जोड़ें
rm -rf (directory)
मान लिया गया कि आप (निर्देशिका) की मूल निर्देशिका में हैं
यदि आप (डायरेक्टरी) अंदर हैं तो
mv * ../
rmdir
शिकायत करता है और बाहर निकलता है यदि निर्देशिका खाली नहीं है, rm -r
तो इसके बजाय उसने इसे और इसकी सभी सामग्रियों को हटा दिया है। (यह एक पोक-योक है ।)
.DS_store
। mv
ऊपर का आदेश उन (बिना dotglob
सेट) को स्थानांतरित नहीं करेगा ।
एक साझा सर्वर पर आप में से कुछ के लिए आपको इस तरह से कुछ का उपयोग करना होगा
फ़ाइलों को स्थानांतरित करने के लिए
mv -v ~/public_html/public_html/* ~/public_html/
फाइलों को कॉपी करने के लिए
cp -a ~/public_html/public_html/* ~/public_html/
.*
नहीं करना होगा*
। इसके अलावा अंतिम विलोपन फ़ोल्डर को हटाने के लिए `o & rmdir myfolder` को अंत o में जोड़ें। यह सहेज रहा है क्योंकि यह केवल तभी चलेगा जब mv सफलता देता है और क्योंकि rmdir एक गैर-रिक्त निर्देशिका को नहीं निकालेगा।