विभिन्न फ़ाइल / निर्देशिका पर सभी फ़ाइल / निर्देशिका विशेषताओं का क्लोन / कॉपी कैसे करें?


15

मैं एक निर्देशिका की विशेषताओं (स्वामित्व, समूह, एसीएल, विस्तारित विशेषताओं, आदि) को कॉपी करना चाहता हूं, लेकिन निर्देशिका सामग्री को ही नहीं।

यह काम नहीं करता:

cp -v --attributes-only A B
cp: omitting directory `A'           

नोट: यह होना जरूरी नहीं है cp


1
आप पास नहीं हुए -r, इसलिए यह निर्देशिकाओं को अनदेखा कर रहा है। लेकिन मुझे लगता है कि आप केवल विशेषताओं को कॉपी करना चाहते हैं, सामग्री को नहीं? मैं केवल बदसूरत हैक्स के बारे में सोच सकता हूं। यह भी ध्यान दें कि installSELinux संदर्भों को संरक्षित कर सकते हैं।
20x पर lynxlynxlynx


1
@Gilles, किसी अन्य विषय की ओर इशारा करने के लिए धन्यवाद। यह समस्या का हिस्सा हल करता है: स्वामित्व और मोड। विस्तारित विशेषताओं के बारे में क्या?
ग्रेज़गोरज़ विएर्ज़ोवेकी

1
@GrzegorzWierzowiecki मुझे बहुत कम उपकरण हैं जो विस्तारित विशेषताओं का समर्थन करते हैं। यदि वे महत्वपूर्ण हैं, तो हत्यारे के rsync सुझाव का उपयोग करें।
गिल्स एसओ- बुराई को रोकना '

Btw। यहाँ ऐसे अच्छे उदाहरण हैं जहाँ कोई व्यक्ति कार्रवाई में xattrs देख सकता है: KDE में डॉल्फ़िन का GUI: imgur.com/oguuJNm या URL जहाँ से फ़ाइल ब्राउज़र द्वारा डाउनलोड की गई थी: संदर्भ: gist.github.com/gwpl-a00e18bc150f1e3518335d13e5e46ad7 + freedesktop.org wiki / CommonExtendedAttributes + vhanda.in/blog/2014/07/tagging-your-files
Grzegorz Wierzowiecki

जवाबों:


13

कमांडलाइन पर काफी परीक्षण और त्रुटि के बाद, मुझे लगता है कि मुझे जवाब मिल गया है। लेकिन यह एक cpसंबंधित जवाब नहीं है ।

rsync -ptgo -A -X -d --no-recursive --exclude=* first-dir/ second-dir

यह करता है:

-p, --perms                 preserve permissions
-t, --times                 preserve modification times
-o, --owner                 preserve owner (super-user only)
-g, --group                 preserve group
-d, --dirs                  transfer directories without recursing
-A, --acls                  preserve ACLs (implies --perms)
-X, --xattrs                preserve extended attributes
    --no-recursive          disables recursion

सन्दर्भ के लिए

    --no-OPTION             turn off an implied OPTION (e.g. --no-D)
-r, --recursive             recurse into directories

वह अंतिम संपादन निश्चित रूप से वहां हिट है। दूसरी-डीआईआर पर / के साथ या बिना, कि आखिर में क्या पूछा जाता है, ऐसा दिखता है।
हत्यारे

अनुगामी स्लैश केवल पहले तर्क पर फर्क करता है, दूसरे पर नहीं। इसे मैन पेज के USAGEसेक्शन के 3rd या 4th पैराग्राफ में समझाया गया है rsync(1)
18013 में jw013

@ jw013 rsync प्रलेखन को बार-बार पढ़ने के बाद, महीनों पहले, मेरा निष्कर्ष यह था कि अनुगामी स्लैश "पहले", चाहे पहले (दूसरे, तीसरे, आदि) या अंतिम तर्क में निहित थे। लेकिन फिर, मैं अक्सर "प्रभावित" करने के लिए "/" मांग करने के अंतिम तर्क पर / के साथ अपने आदेशों को समाप्त करता हूं।
हत्यारे

सभी निर्देशिका विशेषताओं और कोई नियमित फ़ाइल की प्रतिलिपि बनाने के लिए मेरा पेट महसूस हो रहा है rsync -a -AX --include='*/' --exclude='*'। मैंने परीक्षण नहीं किया है।
गिल्स एसओ- बुराई को रोकना '

@ jw013 इस उत्तर को डायल करने में मदद करने के लिए धन्यवाद। मैंने अपने छोटे सैंडबॉक्स टेस्ट परिवेश पर SO के कई विकल्पों की कोशिश की, और पास आते रहे, लेकिन इसका कुछ हिस्सा सही नहीं रहा।
हत्यारे

0
chmod --reference=first-dir second-dir

2
यह पुनरावर्ती रूप से काम नहीं करेगा, और मुझे विश्वास है कि यह ACL या विस्तारित विशेषताओं की प्रतिलिपि नहीं बनाएगा।
Mat

1
इसे पुनरावर्ती नहीं माना जाना चाहिए: ओपी ने "निर्देशिका सामग्री ही नहीं" के लिए कहा, और स्वीकृत उत्तर rsync बताता है --no-recursive। इस जवाब के साथ समस्या यह है कि यह ACLs या XATTRs नहीं करता है।
ShadSterling

0
cp -rfp from_dir to_dir
  • -r - पुनरावर्ती
  • -f - बल
  • -p - संरक्षित विशेषताएँ: मोड, स्वामित्व, टाइमस्टैम्प

इसके अलावा की जरूरत है - केवल
स्मर्टर्ड

0

मुझे समझ नहीं आता क्योंकि यह दूसरों के लिए काम करने लगता है, लेकिन RFSync विधि मेरे लिए ZBS के साथ FreeBSD पर विफल है। कुछ नहीं हुआ। हालांकि जीन-फ्रांकोइस डॉक की विधि काम करती है। (देखें: https://www.lesbonscomptes.com/pxattr/ ) स्रोत निर्देशिका = A & गंतव्य निर्देशिका = B, मूल प्रश्न से।

pxattr -lR A > tmp.EAs

(A निर्देशिका को B, s / A / B / में बदलने के लिए tmp.EA की पहली पंक्ति संपादित करें)

pxattr -S tmp.EAs

तो, आप किसी और की विधि की सिफारिश नहीं कर रहे हैं ; आप किसी और के कार्यक्रम की सिफारिश कर रहे हैं , है ना? यह ठीक है, लेकिन मैंने अभी हाल ही में एक छोटे से गैर-मानक कार्यक्रम पर प्रलेखन की खोज में पांच मिनट बर्बाद किए। यह अच्छा होगा यदि आपने अधिक स्पष्ट रूप से कहा कि आप अनुशंसा कर रहे हैं कि लोग एक छोटे से गैर-मानक कार्यक्रम को डाउनलोड करें।
जी-मैन का कहना है मोनिका '

झाड़ी यह बंदरगाहों के पेड़ में है। यह बिल्कुल गैर-मानक नहीं बनाता है। यह उतना अस्पष्ट नहीं है जितना pyxattrमैंने किया और मैंने भी ऐसा किया। यह दरार करने के लिए एक कठिन अखरोट की तरह था। माना जाता है कि gnu cp इसके लिए काम करता है, लेकिन मैं इसे नहीं बना सकता। विस्तारित गुण इससे बेहतर हैं। इसके अलावा, pxattr linux, osx, & bsd के तहत कम से कम काम करता है।
सिरा

0
rsync -aAX --exclude='*' src_dir/ dst_dir

जहां dst_dir - एक लक्ष्य dir है। या:

rsync -dADXgot src_dir dst_dir

जहां dst_dir - एक dir है जिसमें लक्ष्य dir, या एक गैर-मौजूदा लक्ष्य dir है।

Rsync मैन पेज से:

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
        --exclude=PATTERN       exclude files matching PATTERN

    -d, --dirs                  transfer directories without recursing
    -p, --perms                 preserve permissions
    -A, --acls                  preserve ACLs (implies -p)
    -X, --xattrs                preserve extended attributes
    -o, --owner                 preserve owner (super-user only)
    -g, --group                 preserve group
        --devices               preserve device files (super-user only)
        --specials              preserve special files
    -D                          same as --devices --specials
    -t, --times                 preserve modification times

-3

निर्देशिका की प्रतिलिपि बनाने के लिए आपको "-r" की आवश्यकता होती है।


2
मुझे लगता है कि मैंने आपको गलत समझा, आपको सामग्री की जरूरत नहीं है, बस xattr। यदि यह SELinux के लिए था, तो आप मूल निर्देशिका (A) को संदर्भित करते हुए chcon का उपयोग कर सकते हैं।
तिकड़ी

-rतात्पर्य सभी उपनिर्देशिकाओं और उनमें से फ़ाइलों की प्रतिलिपि है ... मैं पूरे पेड़ की प्रतिलिपि नहीं बनाना चाहता ... मैं केवल एक और केवल एक निर्देशिका के लिए विशेषताओं को कॉपी करना चाहता हूं - यह सामग्री को प्रभावित किए बिना।
ग्रेज़गोरज़ विएर्ज़ोवेकी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.