मैं दोनों टार 1.26 और 1.27.1 के साथ निम्नलिखित व्यवहार का पालन करता हूं:
$ mkdir a b a/diffowner
$ sudo mkdir b/diffowner
$ sudo chmod a+w b/diffowner
$ echo foo > a/diffowner/foo
$ tar -C a -cvf test.tar diffowner
diffowner/
diffowner/foo
$ tar -C b -xvf test.tar diffowner
diffowner/
diffowner/foo
tar: diffowner: Cannot utime: Operation not permitted
tar: diffowner: Cannot change mode to rwxr-xr-x: Operation not permitted
tar: Exiting with failure status due to previous errors
तो मैं यहाँ क्या करने की कोशिश कर रहा हूँ एक मौजूदा निर्देशिका संरचना में एक टार फाइल निकाल रहा हूँ, जहाँ मैं शामिल सभी निर्देशिकाओं का मालिक नहीं हूँ, लेकिन मेरे पास उन सभी पर लिखने की अनुमति नहीं है। वास्तव में वे एक समूह के बीच साझा किए जाते हैं।
मुझे टाइमस्टैम्प की परवाह नहीं है, और मुझे विश्वास है कि अनुमति पहले से ही सही होनी चाहिए। मैं इसे एक सामान्य उपयोगकर्ता के रूप में चला रहा हूं, इसलिए इसे --preserve-permissions
तब तक करने की कोशिश नहीं करनी चाहिए , जब तक कि मुझे ऐसा नहीं बताया जाए। क्या वास्तव में मुझे चिंता है बाहर निकलने की स्थिति है: मैं इसे एक स्क्रिप्ट में उपयोग करने का इरादा रखता हूं, और जानना चाहता हूं कि क्या वास्तविक निष्कर्षण ने ठीक काम किया है।
क्या टार का विकल्प है जो यह बताता है कि निर्देशिका अनुमतियों को सेट नहीं करना है, न तो तुरंत और न ही विलंबित? असफल होना, आप अन्य कौन से समाधान सुझाएंगे। अभी मैं एक अस्थायी निर्देशिका को निकालने और rsync
मौजूदा पेड़ में सामान को स्थानांतरित करने के बारे में सोच रहा हूं । लेकिन शायद आप कम हैकिश दृष्टिकोण को जानते हैं।