প্রশ্ন কিভাবে 'tar' কমান্ড ব্যবহার করে অন্য ডিরেক্টরির মধ্যে ফাইল নিষ্কাশন করতে?


আমি ভাবি tar archive.tar /users/mylocation কাজ করবে, কিন্তু এটা না। আমি এটা কিভাবে করবো?


582
2018-05-26 16:01


উত্স


এছাড়াও, -C, --directory DIR\n change to directory DIR বরং হিসাবে বর্ণনা করা উচিত change output directory to DIR (will fail if DIR doesn't exist)। ধন্যবাদ @ মিচ। @ ব্রায়ান_ লারসেনের উত্তরটিও দেখুন। - valid
@ উজজওয়াল সিংঃ প্রকৃতপক্ষে, টর ম্যান পৃষ্ঠাটি সহায়ক নয়। এটি "-সি ডিআইআর" হিসাবে "ডিরেক্টরি ডিআইআর পরিবর্তন" হিসাবে বর্ণনা করে। এমনকি খারাপ: "টার-সি mydir xf archive.tar" কাজ করে না, যখন "tar xf archive.tar -C mydir" করে। - Pat Morin


উত্তর:


বর্তমান থেকে পৃথক একটি ডিরেক্টরির মধ্যে একটি আর্কাইভ নিষ্কাশন, ব্যবহার করুন -C, অথবা --directory, tar বিকল্প, হিসাবে

tar -xf archive.tar -C /target/directory

লক্ষ্য করুন যে কমান্ডটি চালানোর আগে লক্ষ্য ডিরেক্টরিটি উপস্থিত থাকতে হবে (এটি দ্বারা তৈরি করা যেতে পারে mkdir /target/directory)।

পর এটা ম্যানুয়াল পৃষ্ঠা (কমান্ড: man tar) অন্যান্য বিকল্পের জন্য।


842
2018-05-26 16:16



যদিও আপনি ম্যানুয়ালি ডিরেক্টরি তৈরি করতে হবে। - Jürgen Paul
পাথটি ছিনতাই করা যাবে: i.e. ফাইলটি পুনরুদ্ধার করুন - zzapper
যদি এটি একটি বড় ফাইল হয়, যখন আপনি কমান্ডটি চালান, তখন এটি আপনার কাজ করার সময় কয়েক সেকেন্ডের বা এমনকি মিনিটের জন্য আউটপুট হয় না। আপনি যোগ করে এই ঠিক করতে পারেন -v পতাকা (verbose মোড) যা এটি প্রতিটি ফাইলের নাম তালিকাভুক্ত করে। - IQAndreas
@consultstan xkcd.com/1168 - Duncan X Simpson
এটা সব বিস্ময়কর যে, এই সব বছর পরে, সব বিকল্প tar জমা আছে, এখনও একটি বিকল্প নেই এটি বিদ্যমান না হলে আউটপুট ডিরেক্টরি তৈরি করুন? - EM0


উল্লেখ্য, আপনার টারবলে ইতিমধ্যে একটি ডিরেক্টরি নাম রয়েছে যা আপনি পরিবর্তন করতে চান, যোগ করুন --strip-components=1 বিকল্প:

tar xf archive.tar -C /target/directory --strip-components=1

217
2018-05-21 18:32



ধন্যবাদ. Wget / ইত্যাদি মাধ্যমে ডাউনলোড সবসময় একটি 'পিতা-মাতা' ডিরেক্টরি আছে। এটি সম্পূর্ণ উত্তর ইমো - বা উপরের উত্তর উল্লেখ করা উচিত। - bshea


পূর্ববর্তী উত্তর এবং মন্তব্য মিশ্রন:

সহজেই বিষয়বস্তুটি সরাতে এবং এটি অনুপস্থিত থাকলে লক্ষ্য ডিরেক্টরি তৈরি করুন:

mkdir -p /target/directory && tar xf archive.tar -C /target/directory

জিপের root (প্রথম স্তর) ডিরেক্টরিটি সরিয়ে এবং সরানোর জন্য

mkdir -p /target/directory && tar xf archive.tar -C /target/directory --strip-components=1

21
2018-06-27 19:29





আরেকটি বিকল্প - এক শীর্ষ স্তরের ব্যবহার করা হয়। এটি স্বয়ংক্রিয়ভাবে ফাইলের নামের উপর ভিত্তি করে একটি ডিরেক্টরি তৈরি করবে।

tar zxvf filename.tgz --one-top-level

আপনি যদি চান তবে উপরন্তু, আপনি আপনার নিজের নির্দিষ্ট করতে পারেন এবং tar স্বয়ংক্রিয়ভাবে তৈরি হবে।

tar zxvf filename.tgz --one-top-level=new_directory

7
2018-03-22 21:49





Tar 1.29 এর সাথে, আমরা কেবল tar ফাইলের নামের পরে ডিরেক্টরি নাম যুক্ত করতে পারি। এই ক্ষেত্রে,

tar zxvf tar-file directory-name/

2
2018-06-29 23:00





আমি এক্সট্রাকশন সম্পর্কিত আকর্ষণীয় খুঁজে পেয়েছি, এটি নির্ভর করে কিভাবে আপনি সংরক্ষণাগার তৈরি করেছেন, এই উদাহরণটি দেখুন

cd /tmp
mkdir folder
touch folder/file.txt

যখন তুমি কর tar -zcvf folder.tar.gz folder সবকিছু হিসাবে প্রত্যাশিত = যখন আপনি এটি অকার্যকর এখন এটি untarred হবে (ফোল্ডার তৈরি করা হবে, যদি আপনি এটি মুছে ফেলা) /tmp/folder/

কিন্তু, যখন আপনি tar তৈরি হবে tar -zcvf tmp-folder.tar.gz /tmp/folder এবং আপনি এটি / tmp ফোল্ডারে অনির্বাচিত, ফলাফল হতে হবে /tmp/tmp/folder ডিরেক্টরি! এই ক্ষেত্রে আপনাকে এটি অকার্যকর করতে হবে - tar -xf tmp-folder.tar.gz -C /


1
2017-09-01 22:25