मैं लिनक्स सीपीपी कमांड का उपयोग करके विभिन्न निर्देशिकाओं में कई फाइलों को कैसे कॉपी कर सकता हूं?


0

क्या आप कृपया मुझे यह पता लगाने में मदद कर सकते हैं कि यह कैसे करना है?

आइए बताते हैं, इस निर्देशिका के तहत:

/home/user1/

100 फ़ोल्डर हैं, इन फ़ोल्डरों का नाम 1, 2, 3 ... 100 है। प्रत्येक फ़ोल्डर में, 26 फाइलें हैं।

  • फ़ोल्डर 1 में फ़ाइलों के नाम 1a, 1b ... से 1z हैं।
  • फ़ोल्डर 2 में फ़ाइलों के नाम 2a, 2b ... से 2z हैं।
  • फ़ोल्डर 100 में फ़ाइलों के नाम 100a, 100b ... 100z हैं।

मैं z के साथ समाप्त होने वाली सभी फ़ाइलों को एक नए फ़ोल्डर में कैसे कॉपी कर सकता हूं?

जवाबों:


1

वाइल्डकार्ड का उपयोग करें।

cp /home/user1/*/*z newfolder/

वाइल्डकार्ड में से कुछ में शामिल हैं *, ?और []

* किसी भी वर्ण से मेल खाता है जो कोई भी वर्ण हो सकता है

? एक चरित्र से मेल खाता है जो कोई भी चरित्र हो सकता है

[] एक वर्ण से मेल खाता है जो परिभाषित वर्णों की सीमा के भीतर है

उदाहरण:

[jin@crypt /tmp] % ls foo/*/* 
foo/bar/1a  foo/bar/1c  foo/baz/1a  foo/baz/1c  foo/baz/2d  foo/quux/1b foo/quux/1d
foo/bar/1b  foo/bar/1d  foo/baz/1b  foo/baz/1d  foo/quux/1a foo/quux/1c foo/quux/3d

[jin@crypt /tmp] % ls foo/*/*d
foo/bar/1d  foo/baz/1d  foo/baz/2d  foo/quux/1d foo/quux/3d

[jin@crypt /tmp] % ls foo/ba?/*d
foo/bar/1d  foo/baz/1d  foo/baz/2d

[jin@crypt /tmp] % ls foo/ba??/*d
zsh: no matches found: foo/ba??/*d

[jin@crypt /tmp] % ls foo/baz/*[a-c]
foo/baz/1a  foo/baz/1b  foo/baz/1c

1

खोज आदेश का उपयोग करें:

find . -type f -name \*z -exec cp {} newfolder/ \;

यह थोड़ा जटिल लग रहा है, इसलिए मैं इसे तोड़ दूंगा।

फाइल्स ढूंढते हैं, जहां आप इसे और नीचे बताते हैं। डॉट द्वारा स्वयं का अर्थ है 'वर्तमान निर्देशिका'। अगला पैरामीटर '-type f' का अर्थ है 'टाइप फ़ाइल की चीज़ें खोजें'। '-Name * z' का अर्थ है 'और' z 'से मेल खाने वाले नाम वाली चीजें। इसके बाद, '-exec cp {} newfolder /' का अर्थ है कि मिली हुई वस्तु पर cp कमांड निष्पादित करना - कमांड {} के लिए मैचिंग फाइलनाम को प्रतिस्थापित करता है। अंततः '\;' निष्पादित कमांड स्ट्रिंग को समाप्त करता है - वह याद आती है और आपको एक त्रुटि मिलेगी।

यदि आप केवल यह देखना चाहते हैं कि कौन सी फाइलें मेल खाती हैं, तो यह करें:

find . -type f -name \*z -print

यही कारण है कि स्क्रीन के लिए मिलान फ़ाइलें मुद्रित करेंगे।

यह बहुत किसी भी लिनक्स, यूनिक्स, या मैक टर्मिनल में काम करना चाहिए।

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