2013-06-24 4 views
16

का उपयोग करते समय फ़ाइल स्वामित्व को कैसे रखा जाए, मैं वर्तमान में हमारे सर्वर के लिए एक स्वचालित बैकअप स्क्रिप्ट लिख रहा हूं। मैं कोड भंडार संग्रहित करने के लिए स्क्रिप्ट में यूनिक्स टैर कमांड का उपयोग कर रहा हूं।टैर

मेरी PERL स्क्रिप्ट में मैं टार आदेश के रूप में इस का उपयोग कर रहा:

system("tar -jcpf $destPath/$string.tar.bz2 -X $exclusionFile $targetPath"); 

मैं जब tar संग्रह निकालने फ़ाइल स्वामित्व रखना चाहते हैं। मैं

tar -jtvf 

साथ tar संग्रह सामग्री की सूची की कोशिश की और सूची प्रत्येक फ़ाइल के लिए सही फ़ाइल स्वामित्व निहित है, लेकिन जब संग्रह निकालने, वर्तमान उपयोगकर्ता के लिए फ़ाइल का स्वामित्व बदल जाता है।

क्या कोई टैर संग्रह निकालने और मूल फ़ाइल स्वामित्व को प्रत्येक फ़ाइल के लिए रखने का कोई तरीका है?

+2

मैं जल्दी से जोड़ दूंगा: जब आप इसे शुद्ध पर्ल में कर सकते हैं तो 'system' कमांड न करें। [पुरालेख :: तार] (http://perldoc.perl.org/Archive/Tar.html) देखें। यह काफी समय के लिए मानक पर्ल पैकेज का हिस्सा है। यह विभिन्न ऑपरेटिंग सिस्टम में काम करेगा और आपको अपनी टैरबॉल पर बेहतर नियंत्रण देगा। जबकि राल निकालने naveExample2.tbz2 -jxvf टार --same मालिक और निम्न त्रुटियों मिला: –

उत्तर

12

विकल्प को निकालने के विकल्प को आपूर्ति करें।

tar --help बताता है:

--same-owner 
      create extracted files with the same ownership 
+0

मैं tar संग्रह निकालने की कोशिश की टार: बैकअप/superlinksnpTest.txt: 50,537 यूआईडी के स्वामित्व को बदल नहीं सकते , ग्रिड 50538: ऑपरेशन की अनुमति नहीं है टैर: पिछली त्रुटियों के कारण विफलता स्थिति से बाहर क्या मैं इसे गलत कर रहा हूं? – DontCareBear

+1

संग्रह की सामग्री के यूआईडी/जीआईडी ​​को बदलने के लिए 'tar' को सक्षम करने के लिए आपको' रूट 'होना चाहिए। – JRFerguson

+1

'tar' के सभी कार्यान्वयन में '--सम-स्वामी' पैरामीटर शामिल नहीं है, या यहां तक ​​कि '--help' ध्वज भी है। 'टैर' के आपके संस्करण के वैकल्पिक पैरामीटर देखने के लिए हमेशा' मैन टैर 'करें। –

5

आप "की रक्षा" करने के लिए फ़ाइल विशेषताओं जबकि -p स्विच के साथ tar -x कर चाहते हैं। जाहिर है, वांछित परिणाम प्राप्त करने के लिए आपको इसके लिए रूट होना चाहिए।

  -p, --insecure, --preserve-permissions 
     (x mode only) Preserve file permissions. Attempt to restore the 
     full permissions, including owner, file modes, file flags and 
     ACLs, if available, 

कई POSIX सिस्टम भी pax, cpio कि tar के लिए विकल्प के रूप में काम कर सकते हैं जहाज।

संबंधित मुद्दे