मैं एक अंतर्निहित फ़ाइलपथ के साथ यूनिक्स टार कमांड का उपयोग कैसे करूं?


9

मैं tar -xvfकमांड का उपयोग कर रहा हूं और यह स्पष्ट रास्ता अपना रहा है। हालांकि, रास्ता भरा हुआ है।
उदाहरण:

tar -xvf 13.2.tar

यह /mntफ़ोल्डर का पथ ले रहा है । /फ़ोल्डर भरा हुआ है।

मैं अंतर्निहित पथ के साथ फ़ाइल को कैसे टार कर सकता हूं?


आपको स्पष्ट रूप से इस बारे में विस्तार से बताना चाहिए कि वास्तव में क्या चल रहा है, क्योंकि सवाल पूछने का आपका मौजूदा तरीका यहां तक ​​कि सबसे परिष्कृत क्रिस्टल बॉल थोड़ा धुंधला दिखता है।

जवाबों:


2

आमतौर पर संग्रह बनाते समय रूट भाग को बनाए रखने के लिए या विकल्प की tarआवश्यकता होती है । यहां तक ​​कि अगर आप इसे इस तरह से मजबूर करते हैं, तो भी अर्क अग्रणी को छोड़ देता है।--absolute-names--absolute-paths'/''/'


हालांकि, यदि आपके पास अग्रणी के साथ एक संग्रह है '/'और आप टार निकालते समय इसे नहीं छोड़ते हैं, तो नूह के जवाब को इस रूप में काम करना चाहिए,

pax -r -s ',/mnt,/new/path,' -v -f 13.2.tar

मुझे लगता paxहै कि संपीड़ित फ़ाइलों को संभालना नहीं है, इसलिए आपको डिकम्प्रेस के बाद पाइप करना होगा pax
यह इस तरह से चलेगा (यह मानते हुए कि आपके पास एक gzipped संग्रह है)

gunzip -c 13.2.tar.gz | pax -r -s ',/mnt,/new/path,' -v

मुझे Google पर अभी यह विकी पृष्ठ मिला है ।


2

विहित (उर्फ स्पष्ट) और रिश्तेदार (जिसे आप शायद निहित कह रहे हैं) का उपयोग करने के बीच का अंतर यह है कि क्या आप /शुरुआत में उपयोग करते हैं ।

उदाहरण के लिए, यदि वर्तमान वर्किंग डायरेक्टरी है /usr/home/bob, तो निम्न कमांड्स का समान प्रभाव पड़ता है

tar -xvf foo.tar *
टार -xvf ./foo.tar *
टार -xvf ./foo.tar ./*
tar -xvf /usr/home/bob/foo.tar *
tar -xvf /usr/home/bob/foo.tar//
tar -xvf /usr/home/bob/foo.tar / usr / होम / बॉब / *

लेकिन मुझे संदेह है कि यह वास्तव में आपका सवाल नहीं है। ऐसा लगता है जैसे आपको डिस्क उपयोग निर्धारित करने की आवश्यकता है, और एक निर्देशिका का पता लगाएं जो पूर्ण नहीं है। यह dfकमांड के साथ किया जा सकता है ।

df -k # space on disk in kilobytes
df -m # as above, but in meg
df -g # as above, but in gig

और आप यह mountदिखाने के लिए उपयोग कर सकते हैं कि किस डिवाइस पर फ़ाइल सिस्टम माउंट किए गए हैं।


0

एक रिश्तेदार पथ के साथ एक टार फ़ाइल बनाने के लिए,

cd /parent/of/dir/to/tar
tar cvf subdir.tar subdir

वर्तमान कार्य निर्देशिका के अलावा किसी विशिष्ट निर्देशिका में टार को अनपैक करने के लिए, -C (अपरकेस सी) स्विच का उपयोग करें।

यदि आप किसी फ़ाइल को रूट के अलावा किसी अन्य बिंदु पर पूर्ण पथनाम के साथ खोलना चाहते हैं, तो आपको इसके साथ गड़बड़ करने की आवश्यकता हो सकती है chroot(1)


0

मुझे विश्वास है कि पैक्स चाल चलेगा

pax -r -s, / mnt, / gooddir, -f 13.2.tar

यह आपको एक नई मूल निर्देशिका में स्थानापन्न करने देना चाहिए।

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