tar -tf filename.tar
folder1/file
folder1/name
[...]
मैं फ़ाइल और नाम को फ़ोल्डर 2 में निकालना चाहता हूं । क्या इसे वन-लाइनर के रूप में किया जा सकता है?
tar -tf filename.tar
folder1/file
folder1/name
[...]
मैं फ़ाइल और नाम को फ़ोल्डर 2 में निकालना चाहता हूं । क्या इसे वन-लाइनर के रूप में किया जा सकता है?
जवाबों:
का प्रयोग करें -C
और --strip-components
(देखें man tar
)।
mkdir FOLDER
# for remote tar file
curl -L ’remote_tar_file' | tar -xz - -C FOLDER --strip-components=1
# for local tar file
tar -xzf FILENAME -C FOLDER --strip-components=1
-C
ध्वज मान लिया गया एक निर्देशिका जगह में पहले से ही है तो टार फ़ाइल की सामग्री यह में विस्तार किया जा सकता है। इसलिए mkdir FOLDER
।
--strip-components
झंडा जब एक टार फ़ाइल स्वाभाविक रूप से एक फ़ोल्डर में ही विस्तार हैं, मान लीजिए, GitHub जहां यह उदाहरण के लिए की तरह प्रयोग किया जाता है repo-name-master
फ़ोल्डर। निश्चित रूप से आपको पहले स्तर के फ़ोल्डर की आवश्यकता नहीं होगी, इसलिए यहां --strip-components
सेट किया गया 1
स्वचालित रूप से आपके लिए उस पहले फ़ोल्डर को हटा देगा। बड़ी संख्या में सेट किया जाता है गहरे नेस्टेड फ़ोल्डर्स हटा दिए जाते हैं।
आप --transform
विकल्प को थोड़ा और अधिक लचीलेपन के लिए भी उपयोग कर सकते हैं । यह किसी भी sed प्रतिस्थापन (ओं) के संचालन को स्वीकार करता है।
उदाहरण के लिए, मैं इस तरह से एक नई निर्देशिका के लिए एक लिनक्स टारबॉल निकालता हूं ताकि मैं एक पैच लागू कर सकूं:
tar -xjf linux-2.6.38.tar.bz2 --transform 's/linux-2.6.38/linux-2.6.38.1/'
man tar
। हाजिर नहीं हुआ--strip-components
। अच्छा एक