@ जोसेफ आर। के उत्तर से शुरू, यह मेरे लिए यह काम है कि मैं इसे अपनी आज्ञा से काम न कर सकूँ। (मुझे नहीं लगता कि यह लागू होता है, क्योंकि लागू होने वाले नियमों के लिए \+: {}तत्व के बाद कुछ भी नहीं हो सकता है ।) (मैं टिप्पणी नहीं कर सकता। यह पूरा पैराग्राफ वास्तव में हटाया जा सकता है।)
सभी फाइलों को उसी निर्देशिका में कॉपी करने के लिए (यहां target/directory):
find directory/to/copy -type f -exec install -Dm 755 "{}" "target/directory" \;
-D यहाँ अनिवार्य नहीं है, यह लक्ष्य के लिए गैर-मौजूदा निर्देशिका बनाएगा।
एक पूरी निर्देशिका पदानुक्रम और उसकी फ़ाइलों (यह खाली निर्देशिकाओं को छोड़ देगा) की प्रतिलिपि बनाने के लिए जहाँ से आप वर्तमान में हैं:
find directory/tree/to/copy -type f -exec install -Dm 755 "{}" "target/directory/{}" \;
जैसा कि कहा गया है, इससे शुरू होने वाले पेड़ को फिर से बनाया जाएगा $PWD। इसके अलावा, अगर आप खाली निर्देशिका कॉपी करने की जरूरत है, पर एक तरह से उपयोग करते हुए मिल सकता है -type dकी findऔर install -d।
तो, पेड़ की नकल करने के लिए, एक निर्देशिका से शुरू करना जो कि नहीं है $PWD:
(cd parent/directory && find directory/tree/to/copy -type f -exec install -Dm 755 "{}" "target/directory/{}" \;)
ध्यान दें कि कैसे parent/directoryनकल नहीं की जाती है।
अतिरिक्त
उपयोग करने वालों के लिए shell/fish, यहां वह पंक्ति है जो समान है:
fish -c 'cd parent/directory; and find directory/tree/to/copy -type f -exec install -Dm 755 "{}" "target/directory/{}" \\;'