cp + अनुमतियों को अधिलेखित नहीं करना चाहता


23

cpलक्ष्य फ़ाइल की अनुमतियों को बदले बिना आप कमांड का उपयोग कैसे करते हैं ? उदाहरण के लिए:

cp /tmp/file   /home/file

मैं बदलने के लिए नहीं करना चाहते हैं chownऔर chgrpपर /home/file


3
यह स्पष्ट नहीं है कि आप स्रोत अनुमतियों या लक्ष्य अनुमतियों को संरक्षित करने के बारे में पूछ रहे हैं या नहीं। आपने सुपरयूज़र को भी क्रॉस-साइट स्पैम कर दिया है।
टॉम शॉ

रिकॉर्ड के लिए, "संरक्षण" विकल्प स्रोत के संदर्भ में हैं । cp -pस्रोत विशेषताओं से मैच विशेषता (जिससे संरक्षण) मेल खाता है।
मप्रिको

1
मैं सिर्फ इस पृष्ठ पर ठोकर खाई। cp डिफ़ॉल्ट रूप से लक्ष्य फ़ाइलों की अनुमति और उपयोगकर्ता को संरक्षित करने के लिए चाहिए: समूह क्योंकि यह अद्यतन मोड में लक्ष्य को खोलता है और इसके इनोड को बनाए रखता है। इसलिए यह मेरे लिए स्पष्ट नहीं है कि उत्तर इसका संकेत क्यों नहीं देते हैं।
डोजर

जवाबों:


30

यदि आपने केवल इसके लिए मैनुअलcp खोला है ...

अगला फ़ाइल अनुमतियाँ और स्वामित्व + समूहीकरण को अधिलेखित नहीं करेगा:

cp --no-preserve=mode,ownership /tmp/file /home/file

ध्यान दें कि यदि आप स्वामित्व और समूह को संरक्षित करना चाहते हैं तो रूट विशेषाधिकारों की आवश्यकता है।

मैनुअल का एक अंश:

  --preserve[=ATTR_LIST]
      preserve   the   specified   attributes   (default:  mode,owner-
      ship,timestamps), if possible  additional  attributes:  context,
      links, xattr, all

वैसा नहीं जैसा लेखक चाहता था। --no-preserveसमझ में आता है अगर --preserve(या उसके बाद ) का उपयोग किया जाता है , अन्यथा यह के व्यवहार को प्रभावित नहीं करता है cp। लेखक एक मौजूदा लक्ष्य फ़ाइल के फ़ाइल मोड को रखना चाहता था और केवल इसकी सामग्री को अधिलेखित करता है
बेसिन

Ex: ssh होस्ट कुंजियाँ बदलें cp --no-preserve=mode,ownership ssh* /etc/ssh/। यह गुप्त कुंजियों को विश्व-पठनीय बनाता है।
बेसिन

मैन पेज का --preserve स्पष्टीकरण IMHO निरर्थक है क्योंकि यह स्पष्ट नहीं करता है कि यह संरक्षित क्या है: स्रोत या लक्ष्य विशेषता
वास्लप


0

या आप GNU कोरुटिल्स से बेहतर इंस्टाल प्रोग्राम का उपयोग कर सकते हैं जो इस विशेष उद्देश्य के लिए बनाया गया है। कृपया ध्यान दें कि यह पुन: जमा करने में सक्षम नहीं है (-R या -r विकल्प)।

http://www.gnu.org/software/coreutils/manual/html_node/install-invocation.html


1
मैंने लक्ष्य के ower या समूह को संरक्षित करने के लिए इसके लिए एक स्विच नहीं देखा। बस इसे एक नए मूल्य के लिए मजबूर करें।
पीट

0

अनुमति-संबंधी स्विच का उपयोग न करें, विशेष रूप से --no-preserve, क्योंकि यह अजीब व्यवहार करता है:

अच्छा:

[il@localhost Downloads]$ sudo cp ssh_host_* /etc/ssh/
[il@localhost Downloads]$ ls -l /etc/ssh
total 604
-rw-r--r--  1 root root     581843 Oct 20  2017 moduli
-rw-r--r--  1 root root       2276 Oct 20  2017 ssh_config
-rw-------  1 root root       3907 Oct 20  2017 sshd_config
-rw-r-----. 1 root ssh_keys    227 Oct  2 12:26 ssh_host_ecdsa_key
-rw-r--r--. 1 root root        172 Oct  2 12:26 ssh_host_ecdsa_key.pub
-rw-r-----. 1 root ssh_keys    411 Oct  2 12:26 ssh_host_ed25519_key
-rw-r--r--. 1 root root        100 Oct  2 12:26 ssh_host_ed25519_key.pub
-rw-r-----. 1 root ssh_keys   1679 Oct  2 12:26 ssh_host_rsa_key
-rw-r--r--. 1 root root        392 Oct  2 12:26 ssh_host_rsa_key.pub

खराब:

[il@localhost Downloads]$ sudo cp --no-preserve=mode,ownership ssh_host_* /etc/ssh/
[il@localhost Downloads]$ ls -l /etc/ssh
total 604
-rw-r--r--  1 root root     581843 Oct 20  2017 moduli
-rw-r--r--  1 root root       2276 Oct 20  2017 ssh_config
-rw-------  1 root root       3907 Oct 20  2017 sshd_config
-rw-r--r--. 1 root ssh_keys    227 Oct  2 12:27 ssh_host_ecdsa_key
-rw-r--r--. 1 root root        172 Oct  2 12:27 ssh_host_ecdsa_key.pub
-rw-r--r--. 1 root ssh_keys    411 Oct  2 12:27 ssh_host_ed25519_key
-rw-r--r--. 1 root root        100 Oct  2 12:27 ssh_host_ed25519_key.pub
-rw-r--r--. 1 root ssh_keys   1679 Oct  2 12:27 ssh_host_rsa_key
-rw-r--r--. 1 root root        392 Oct  2 12:27 ssh_host_rsa_key.pub

0

सीपी डिफ़ॉल्ट रूप से अनुमतियाँ हावी नहीं होता। यदि आप यह सुनिश्चित करना चाहते हैं कि अनुमति ओवरराइड नहीं होगी, तो उपयोग करें

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