टर्मिनल का उपयोग करके निर्देशिका में सभी उपनिर्देशिका की सामग्री / फ़ाइल की प्रतिलिपि बनाएँ


17

मैं एक फ़ोल्डर में सभी सबफ़ोल्डर्स के लिए एक फाइल कॉपी करना चाहता हूं। मैं कमांड लाइन के साथ यह कैसे कर सकता हूं?

जवाबों:


26

सभी सबफ़ोल्डर्स (और शायद उनके सबफ़ोल्डर्स, जो आप चाहते हैं, उसके आधार पर) में वर्तमान वर्किंग डायरेक्टरी में एक फ़ाइल कैसे डालें

यह फ़ाइल सभी सबफ़ोल्डर्स में डाल देगा, लेकिन उनके सबफ़ोल्डर्स में नहीं:

for d in */; do cp water.txt "$d"; done

यह फ़ाइल water.txtको सभी सबफ़ोल्डर्स और उनके सबफ़ोल्डर्स में फ़ाइल नाम के सभी उदाहरणों को बदलना होगा।

for i in ./* # iterate over all files in current dir
do
    if [ -d "$i" ] # if it's a directory
    then
        cp water.txt "$i" # copy water.txt into it
    fi
done

इस linuxquestions धागे से जानकारी


14

आप उस एक-लाइनर का उपयोग कर सकते हैं:

find <target-dir> -type d -exec cp <the file> {} \;

सीमा की गहराई 1 -> केवल तात्कालिक निर्देशिकाओं तक

find <target-dir> -type d -maxdepth 1 -exec cp <the file> {} \;


2
यह सभी उपनिर्देशिकाएँ पुनरावर्ती करता है, न कि केवल तात्कालिक उपनिर्देशिकाएँ
Anake

2
@Anake ने मेरे जवाब को अपडेट किया
15:37

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