cp कमांड कुछ फ़ाइलों को कॉपी होने से बाहर करने के लिए


35

क्या निर्देशिका को कॉपी करने और उसके भीतर कुछ फ़ाइलों / उप-निर्देशिकाओं को बाहर करने के लिए कमांड 'cp' का उपयोग करने का कोई तरीका है?

जवाबों:


57

उपयोग करें rsync:

rsync -avr --exclude='path1/to/exclude' --exclude='path2/to/exclude' source destination

ध्यान दें कि उपयोग कर रहे हैं sourceऔर source/अलग हैं। एक अनुगामी फ़ोल्डर की सामग्री को कॉपी करने के लिए साधन स्लेश sourceमें destination। अनुगामी स्लैश के बिना, इसका मतलब है कि फ़ोल्डर स्रोत को कॉपी करें destination

वैकल्पिक रूप से, यदि आपके पास बाहर करने के लिए बहुत सारी निर्देशिकाएं (या फाइलें) हैं, तो आप उपयोग कर सकते हैं --exclude-from=FILE, जहां FILEएक फाइल का नाम है जिसमें फ़ाइलों या निर्देशिकाओं को बाहर करना है।

--exclude इसमें वाइल्डकार्ड भी हो सकते हैं, जैसे कि --exclude=*/.svn*

से कॉपी किया गया: https://stackoverflow.com/a/2194500/749232

यदि आप cpस्वयं का उपयोग करना चाहते हैं :

find . -type f -not -iname '*/not-from-here/*' -exec cp '{}' '/dest/{}' ';'

यह मानता है कि लक्ष्य निर्देशिका संरचना स्रोत के समान है।

से कॉपी किया गया: https://stackoverflow.com/a/4586025/749232


3

खेल में देर हो चुकी है, लेकिन यहाँ सादे बैश और सीपी का उपयोग करके एक बहुत ही अलग समाधान है: कुछ फ़ाइलों को अनदेखा करते हुए आप एक वैश्विक फ़ाइल विनिर्देश का उपयोग कर सकते हैं।

मान लें कि निर्देशिका में फ़ाइलें हैं:

$ ls *
listed1  listed2  listed3  listed4  unlisted1  unlisted2  unlisted3

GLOBIGNORE चर का उपयोग :

$ export GLOBIGNORE='unlisted*'
$ ls *
listed1  listed2  listed3  listed4

या अधिक विशिष्ट बहिष्करणों के साथ:

$ export GLOBIGNORE='unlisted1:unlisted2'
$ ls *
listed1  listed2  listed3  listed4  unlisted3

या नकारात्मक मैचों का उपयोग करना :

$ ls !(unlisted*)
listed1  listed2  listed3  listed4

यह भी कई बेजोड़ पैटर्न का समर्थन करता है:

$ ls !(unlisted1|unlisted2)
listed1  listed2  listed3  listed4  unlisted3

1
नकारात्मक मैचों के लिए आपको विस्तारित ग्लब्स को सक्षम करने की आवश्यकता है:, shopt -s extglobआपको निर्यात करने की भी आवश्यकता नहीं है GLOBIGNORE: यह वर्तमान शेल के व्यवहार को संशोधित करना है, अधिकांश बाल कार्यक्रम इसकी परवाह नहीं करेंगे।
मुरु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.