আপনি কীভাবে একটি বড় tar.gz সংরক্ষণাগার থেকে একটি একক ফোল্ডারটি বের করতে পারেন?


131

আমি এই কমান্ডটি 5 জিবি সংরক্ষণাগারে ব্যবহার করছি am

tar -zxvf archive.tar.gz /folder/in/archive

এটি কি এটি করার সঠিক উপায়? কোনও কমান্ড লাইন আউটপুট না নিয়ে চিরকালের জন্য নিচ্ছে বলে মনে হচ্ছে ...


আপনি একটি নিখুঁত বা আপেক্ষিক পথ ব্যবহার করেছেন? এটি আপেক্ষিক হওয়া উচিত, অন্যটি দেখতে এটি সঠিক দেখাচ্ছে। আপনি কতক্ষণ এটি চালিয়ে যেতে দিয়েছেন, এবং আপনার সিস্টেমটি কতটা ভাল? এটি একটি ফাস্ট মেশিনে কমপক্ষে কয়েক মিনিট সময় নেবে । সম্ভবত এক ঘন্টা বা আরও বেশি? আমি এখন একটি পরীক্ষা চালাচ্ছি।
কেভিন

হ্যাঁ, এটি h 1 ঘন্টা পরে সম্পন্ন হয়েছে, তবে পরম পথটি ভুল ছিল, আপনি সঠিক ছিলেন।
গ্যারেট হল

5
লিনাক্স, আপনি কতদূর মধ্যে সংরক্ষণাগার দেখতে পারেন tarসাথে আছেন cat /proc/$(pidof tar)/fdinfo/0(যদি আপনি একাধিক আছে কমান্ড খাপ খাওয়ানো tarপ্রক্রিয়া চলমান)।
গিলস

গুরুত্বপূর্ণ অংশটিও কোনও পিছনে স্ল্যাশ নয়। ব্যবহার folder/folder2/কাজ করবে না।
Marki555

উত্তর:


145

tarডিফল্টরূপে আপেক্ষিক পাথ সংরক্ষণ করে । আপনি যদি কোনও নিখুঁত পাথ সংরক্ষণ করার চেষ্টা করেন তবে জিএনইউ টার এমনকি এটি বলে:

tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names

আপনার যদি কোনও নির্দিষ্ট ফোল্ডারটি বের করার প্রয়োজন হয় তবে তার ট্যারি ফাইলে কী রয়েছে তা একবার দেখুন:

tar -tvf foo.tar

এবং সঠিক ফাইলের নামটি নোট করুন। আমার foo.tarফাইলের ক্ষেত্রে , আমি এটি /home/foo/barবলে উত্তোলন করতে পারি :

tar -xvf foo.tar home/foo/bar # Note: no leading slash

সুতরাং না, আপনি যেভাবে পোস্ট করেছেন তা এটি করার সঠিক উপায় নয় (প্রয়োজনীয়ভাবে)। আপনাকে অগ্রণী স্ল্যাশ ছেড়ে দিতে হবে। যদি আপনি নিখুঁত পাথগুলি অনুকরণ করতে চান তবে cd /প্রথমে করুন এবং নিশ্চিত হন যে আপনি সুপারভাইজার। এছাড়াও, এটি একই কাজ করে:

tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option

tarপাথগুলি আপেক্ষিকভাবে রূপান্তর করার জন্য খুব স্পষ্ট, ভাল কারণ রয়েছে। একটি হ'ল আর্কাইভের আসল উত্স ব্যতীত অন্য জায়গায় পুনরুদ্ধার করার ক্ষমতা। অন্যটি সুরক্ষা। আপনি কোনও সংরক্ষণাগার বের করতে পারবেন, তার ফাইলগুলি আপনার বর্তমান কার্যকারী ডিরেক্টরিতে উপস্থিত হওয়া প্রত্যাশা করতে পারেন এবং পরিবর্তে সিস্টেম ফাইলগুলি (বা আপনার নিজের কাজ) ভুলক্রমে ওভাররাইট করতে পারেন।

দ্রষ্টব্য: আপনি যদি -Pবিকল্পটি ব্যবহার করেন তবে নিখুঁত পাথ সংরক্ষণাগারভুক্ত tar হবে । সুতরাং এটি উত্তোলনের আগে সর্বদা বড় সংরক্ষণাগারগুলির বিষয়বস্তুগুলি পরীক্ষা করার জন্য অর্থ প্রদান করে।


36
--strip-components=Nকিছু এখানে দরকারী হতে পারে।
একুম্যানাস

2
আমার ক্ষেত্রে এটির ./foldername/পরিবর্তে লেখার দরকার ছিল foldername, আমি অনুমান করি যে এটি ছিল কারণ যখন আমি তার তৈরি করেছি যখন আমি এটি তৈরি করেছি tar -cvf santi.tar ./*এবং যখন আমি তার সাথে "তালিকাবদ্ধ" করেছি এটিই বলেছিলdrwxr-xr-x santi/santi 0 2016-04-11 09:42 ./foldername/
সান্তিয়াগো আরিজিটি

1
এবং সম্পর্কে .gz?
পিটার ক্রাউস

1
পরিবর্তন @PeterKrauss -xvfকরার -xzvf(যোগ -zবিকল্প) এবং স্পষ্টত foo.tarকরতে foo.tar.gzবা যাই হোক না কেন আপনার সংরক্ষণাগার নামকরণ করা হয়। -jএটিই (বিজে 2) এবং সাম্প্রতিক সংস্করণগুলিতে (এক্সজেড) ধারণ করে -J। অন্যথায়, মত একটি পাইপলাইনও zcat foo.tar.gz | tar -xvf - …কাজ করে।
অ্যালেক্সিয়াস

এবং মনে রাখবেন, যদি আপনি নিষ্কাশন চলাকালীন সমস্ত ভার্বোজ আউটপুট থেকে ক্লান্ত হয়ে vথাকেন তবে সমস্ত উদাহরণে এড়িয়ে যান । যেমন, tar -tf foo.tarএবং tar -xf foo.tar ...
বো আর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.