लिनक्स पर फ़ाइलों और फ़ोल्डरों को पुन: ले जाएं


75

विचार करें:

ls -al ../public-back
drwxrwxr-x  4 apache   apache     4096 Apr 19 03:32 templates

ls -al ../public-back/templates

drwxrwxr-x  2 apache   apache    4096 Apr 19 03:33 content
drwxrwxr-x  2 apache   apache   20480 Apr 20 06:14 images
drwxrwxr-x  2 apache   apache    4096 Apr 19 03:35 video

ls -al /public

drwxrwxr-x  4 apache   apache     4096 Apr 20 09:49 templates

ls -al /public/templates

drwxrwxr-x  2 apache   apache    4096 Apr 20 09:50 content
drwxrwxr-x  2 apache   apache    4096 Apr 20 09:50 images
drwxrwxr-x  2 apache   apache    4096 Apr 20 09:50 video

मैं /public-back/templatesअनुमतियों के साथ पुनरावर्ती की सामग्री को कैसे स्थानांतरित करूं /public/templates?


mv ../public-back/templates/* सार्वजनिक / टेम्प्लेट /

mv -R ../public-back/templates/* public/templates/मैं अभी भी प्रश्न को स्थानांतरित करने के लिए मतदान करूंगा।

2
mv: अमान्य विकल्प - R @Vladislav Zorov

3
मैंने cp -a ../public-back/templates/ public /

जवाबों:


92

जब तक मैं इस प्रश्न को गलत नहीं समझ रहा हूँ, यह काम करेगा:

mv /public-back/templates/* /public/templates

इसके अलावा, जब तक आपके पास फ़ाइलों की एक विशाल सूची नहीं होती है, तब तक जोड़ने -iसे पहले पूछेंगे कि यह किसी भी चीज़ को अधिलेखित करता है, जो वाइल्डकार्ड्स का उपयोग करते समय कुछ सुरक्षा जोड़ते हैं *


14
यह छिपी हुई फ़ाइलों को स्थानांतरित नहीं करता है।
अरदा

2
Dotublob को सेट करने के लिए askubuntu.com/a/259386/358964 देखें ताकि छिपी हुई फ़ाइलों को भी स्थानांतरित कर दिया जाएगा।
mkobit

3
नोट: यह उपनिर्देशिकाओं में फाइलों को अधिलेखित नहीं करेगा। आपको एक Directory not emptyसंदेश मिलेगा ।
आर्मस्ट्रांगेस्ट

लगता है कि यह निर्देशिका पदानुक्रम चपटा। मेरे लिए मूल फ़ोल्डर के भीतर फ़ोल्डर्स को संरक्षित नहीं किया। सभी फ़ाइलें एक ही फ़ोल्डर में समाप्त हो गईं, बल्कि मूल फ़ोल्डर को समान संरचना के साथ स्थानांतरित करने के बजाय।
राबर्ट नैक

यह समाधान काम करता है, लेकिन अगर आपको यह त्रुटि दिखाई देती है: mv: target '/public/templates' is not a directoryबस गंतव्य फ़ोल्डर मैन्युअल रूप से बनाएं mkdir /public/templates:।
अली शबदर

8

Cp राज्यों का मैन पेज:

-p same as --preserve=mode,ownership,timestamps
-r same as --recursive=copy directories recursively

प्रयत्न, कोशिश;

cp -rp /public-back/templates/* /public/templates/

13
mvके लिए है चाल जबकि, cpके लिए है प्रति एक semantical / व्युत्पत्ति भेद -।
मारियस ब्यूटिक

cpजिस तरह से धीमी है mvcpकंप्यूटर को डिस्क से रैम तक सब कुछ कॉपी करने के लिए मजबूर करता है, और फिर इसे डिस्क पर फिर से लिखें जो फ़ाइलों के आकार के आधार पर एक लंबा समय ले सकता है। हालांकि, mvहमेशा तुरंत होता है क्योंकि केवल लिंक को फिर से लिखना पड़ता है।
tjespe

4

अपने अंगूठे ड्राइव से आइटम को मेरे OSMC सिस्टम में ले जाने पर, मुझे निम्नलिखित बहुत उपयोगी लगे:

find /media/Pi\ Hard\ 16GB/ -name '*' -exec mv -v {} /media/External\ HDD/Videos/ \;

नीचे यह कैसे काम करता है, इस पर स्पष्टीकरण।

BTW, स्रोत या गंतव्य निर्देशिका नामों (ऊपर देखें) में किसी भी स्थान से पहले बैकस्लैश जोड़ना न भूलें।

find  finds all files and folders in the destination path.

/media/Pi Hard 16GB/ is the path searched. Escape special char such as spaces.

-name '*' filters on names. If you do not escape or quote this then 
          the shell will expand it before find sees it.

-exec     Executes a command, in our case mv

-v        Verbose, so you can see what's happening (optional)

{}        is replaced by the name of the found object.

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


2

एमवी ऐसा करने के लिए प्रतीत नहीं होता है। लेकिन आप इस छोटी सी चाल का उपयोग कर सकते हैं, एक आकर्षण की तरह काम करता है:

tar cf - . |(cd /targetdir; tar xvf -)

और अनुमतियाँ और सभी संरक्षित करता है।

नोट: उपरोक्त में से कोई भी मेरे लिए काम नहीं किया, इसीलिए यह वर्कअराउंड है।


1
cp -a --link ../public-back/* /public/.  &&  rm -rf ../public-back

इसलिए गंतव्य निर्देशिका में हार्ड लिंक बनाएं और स्रोत को हटा दें। 'mv' केवल आपके मामले में काम नहीं करेगा, और सामान्य रूप से केवल तब काम करता है जब स्रोत dir और dest के पास कोई सामान्य उप-योग नहीं है।

ध्यान दें कि मैं मान रहा हूं कि प्रश्न में 'चाल' शब्द का मतलब है कि ऑपरेशन के बाद स्रोत डायर को चला जाना चाहिए।

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