একটি কমান্ডে একটি tar.xz তৈরি করুন


159

আমি একটি .tar.xzকমান্ডে একটি সংকুচিত সংরক্ষণাগার তৈরি করার চেষ্টা করছি । তার জন্য নির্দিষ্ট বাক্য গঠন কী?

আমি চেষ্টা করেছি tar cf - file | xz file.tar.xz, কিন্তু কাজ করে না।

উত্তর:


241

এর -Jজন্য সংকোচন বিকল্পটি ব্যবহার করুন xz। এবং মনে রাখবেন man tar:)

tar cfJ <archive.tar.xz> <files>

2015-08-10 সম্পাদনা করুন:

যদি আপনি tar ড্যাশগুলি দিয়ে যুক্তিগুলি পাস করেন (যেমন: এর tar -cfবিপরীতে tar cf), তবে -fবিকল্পটি অবশ্যই শেষ অবধি আসবে , যেহেতু এটি ফাইলের নামটি নির্দিষ্ট করে (এটি নির্দেশ করার জন্য @ ABB কে ধন্যবাদ !)! সেক্ষেত্রে কমান্ডটি দেখতে পাওয়া যায়:

tar -cJf <archive.tar.xz> <files>

5
যোগ vকমান্ড সুইচ করার জন্য ( tar -cJvf) দেখায় ফাইল সংরক্ষণাগার যোগ করা হচ্ছে বাগাড়ম্বরপূর্ণ যাবে।
স্টুয়ার্ট কার্ডাল

7
অর্ডারটি ড্যাশ সহ গুরুত্বপূর্ণ, প্রদত্ত অর্ডারিংটি সর্বদা গুরুত্বপূর্ণ বলে মনে করা ভাল এবং fড্যাশ ছাড়াই শেষ রাখা উচিত put
mwfearnley

1
Xe পরামিতি যেমন -e (- প্রসারিত) পাস করা সম্ভব? স্পষ্টতই এটি ডিফল্টরূপে প্রসারিত ব্যবহার করবে না।
chmike

3
tarম্যাকোজে অন সমর্থন করে বলে মনে হচ্ছে -Jতবে ম্যান পৃষ্ঠাতে বৈশিষ্ট্যটি দেওয়া হয়নি। এখানে এটি তাকান ছিল। যদিও তারা --options...
এক্সজেডের

1
@chmike XZ_OPT এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করুন। উদাঃ XZ_OPT = "- 9e -T0"।
ঝর্ণা

50

স্যুইচ -Jশুধুমাত্র নতুন সিস্টেমে কাজ করে। সর্বজনীন আদেশ হ'ল:

.Tar.xz সংরক্ষণাগার তৈরি করতে

tar cf - directory/ | xz -z - > directory.tar.xz

ব্যাখ্যা

  1. tar cf - directoryডিরেক্টরি পড়ে / এবং এটি টিআর ফরমেটে লাগানো শুরু করে। এই অপারেশনের আউটপুট স্ট্যান্ডার্ড আউটপুটে উত্পন্ন হয়।

  2. | অন্য প্রোগ্রামের ইনপুটটিতে পাইপগুলি স্ট্যান্ডার্ড আউটপুট ...

  3. ... যা হতে পারে xz -z -। এক্সজেড -zস্ট্যান্ডার্ড ইনপুট থেকে সংরক্ষণাগারটি সঙ্কুচিত করতে ( ) কনফিগার করা হয়েছে- ) ।

  4. আপনি এর থেকে আউটপুট পুনর্নির্দেশ xzকরতে tar.xzফাইল।


16
-fপাস করার সময় "ফাইল থেকে" বোঝায় না xz। এর পরিবর্তে এটি জন্য ছোট --force(দেখুন ভাবে XZ লস (1) বিস্তারিত জানার জন্য), এবং শ্রেষ্ঠ, যদি না প্রয়োজন ব্যবহার করা হয় না।
এলিয়াহ কাগান

@ এলিয়াকাগান ফিক্সড ধন্যবাদ।
ওয়াজেসিচ অ্যাডাম কোসেক

2
মাল্টিথ্রেডেড সংকোচনের জন্য বিকল্পটি -T0 ব্যবহার করা যেতে পারে:tar cf - directory/ | xz -z -T0 - > directory.tar.xz
oidualc

আর একটি সুবিধা হ'ল আপনি সহজেই কমান্ড লাইনে সংক্ষেপণের স্তর বা অন্য কোনও বিকল্প xz উল্লেখ করতে পারেন। উদাহরণস্বরূপ, আপনি যদি সংকোচনের গতি বাড়িয়ে তুলতে চান এবং আপনি যে আকারটি ব্যবহার করতে পারেন সে সম্পর্কে -1 -T0বা -0 -T0অপশন হিসাবে খুব বেশি যত্নশীল না হন যা সাধারণত আপনাকে তুলনীয় বা দ্রুত সময়ে জিজিপের চেয়ে একটি ছোট ফাইল দেয়, যখন ডিফল্টটি -6যথেষ্ট ধীর হয় while gzip চেয়ে।
fgwaller

38

আপনি যদি পাইপ মোডটি পছন্দ করেন তবে এটি সবচেয়ে পরিষ্কার সমাধান:

tar c some-dir | xz > some-dir.tar.xz

fফাইলগুলির সাথে ডিল করার জন্য এবং তারপরে -ফাইলটি স্ট্যান্ডার্ড ইনপুট কিনা তা নির্দিষ্ট করার জন্য বিকল্পটি রাখার প্রয়োজন নেই । এটির -zজন্য বিকল্পটি নির্দিষ্ট করারও দরকার নেইxz , কারণ এটি ডিফল্ট।

এটা দিয়ে কাজ করে gzipএবং bzip2খুব:

tar c some-dir | gzip > some-dir.tar.gz

অথবা

tar c some-dir | bzip2 > some-dir.tar.bz2

সঙ্কোচন করাও বেশ সোজা:

xzcat tarball.tar.xz | tar x
bzcat tarball.tar.bz2 | tar x
zcat tarball.tar.gz | tar x

আপনার যদি কেবল tarসংরক্ষণাগার থাকে তবে আপনি এটি ব্যবহার করতে পারেন cat:

cat archive.tar | tar x

আপনার যদি কেবলমাত্র ফাইলগুলির তালিকা তৈরি করতে হয় তবে ব্যবহার করুন tar t


8

এক্সজেড সংক্ষেপণ বিকল্পগুলি ব্যবহার করে

আপনি যদি এর জন্য সংক্ষেপণ বিকল্পগুলি ব্যবহার করতে চান xzবা আপনি tarম্যাকওএস ব্যবহার করছেন তবে আপনি সম্ভবত tar -cJfবাক্য গঠনটি এড়াতে চান want

মতে এটি করার man xzউপায় হ'ল:

tar cf - baz | xz -4e > baz.tar.xz

কারণ আমি ভোজাইচ অ্যাডাম কোসেকের ফর্ম্যাটটি পছন্দ করেছি , তবে তথ্যটি নয়:

  1. c নির্দিষ্ট ফাইলগুলির জন্য একটি নতুন সংরক্ষণাগার তৈরি করে।
  2. fএকটি ডিরেক্টরি থেকে পড়ুন (এটি সেরা দ্বিতীয়টি কারণ -cf! = -fc)
  3. - স্ট্যান্ডার্ড আউটপুট আউটপুট
  4. | পাইপ আউটপুট পরবর্তী কমান্ড
  5. xz -4eসংকোচন বিকল্পের xzসাথে কল -4e। (সমান -4 --extreme)
  6. > baz.tar.xz টার্ডযুক্ত এবং সংকুচিত ফাইলটিতে নির্দেশ দেয় baz.tar.xz

কোথায় -4e, আপনার নিজের সংকোচন বিকল্পগুলি ব্যবহার করুন। আমি প্রায়ই ব্যবহার -kকরতে --keepমূল ফাইল এবং -9সত্যিই ভারী কম্প্রেশন জন্য। -zম্যানুয়ালি জিপতে সেট xzকরতে, যদিও এটি অন্যথায় নির্দেশিত না হলে জিপিংয়ের জন্য ডিফল্ট হয়।

সঙ্কোচিত এবং অবাস্তব করা

রাফায়েল ভ্যান হর্ন প্রতিধ্বনিত করতে , সঙ্কুচিত করা এবং আনতার (নীচের নোটটি দেখুন):

xz -dc baz.tar.xz | tar x

দ্রষ্টব্য: রাফেলের উত্তরের বিপরীতে , xz -dcপরিবর্তে ব্যবহার করুন catxz। আপনি যদি স্ক্রিপ্টিংয়ের জন্য এটি ব্যবহার করেন তবে ডকসই এটিকে সুপারিশ করে। শ্রেষ্ঠ ব্যবহারের একটি অভ্যাস আছে -dবা --decompressপরিবর্তে unxzহিসাবে ভাল। তবে, যদি আপনার অবশ্যই হয়, কমান্ড লাইন থেকে এই কমান্ডগুলি ব্যবহার করা ভাল।


tar -cJfMacOS এ সিনট্যাক্স ব্যবহার না করার জন্য কোনও বিশেষ কারণ ? শুধু কৌতূহলী, কারণ আমি এখনই এটি করছিলাম এবং মনে হচ্ছে এটি কাজ করছে।
লো-টান

2
@ লো-ট্যান এটি আপনার কাজ করা থাকলে কাজ করে। যখন আমি এটি ব্যবহার করছিলাম তখন আমার কাছে ডানটির সঠিক সংস্করণ ছিল না তাই এটি আমার জন্য কাজ করে না। আমি এক্সজেডের জন্য সংকোচনের বিকল্পগুলিও ব্যবহার করতে চেয়েছিলাম, আপনি যদি টার ব্যবহার করেন তবে আপনি এটি করতে পারবেন না। এছাড়াও, পাইপিং সিনট্যাক্সটি আমার পক্ষে মনে রাখা সহজ, তাই আমি এটি ব্যবহার করার প্রবণতা রাখি। তবে প্রত্যেকের নিজস্ব
কনার

4

এটা চেষ্টা কর: tar -cf file.tar file-to-compress ; xz -z file.tar

বিঃদ্রঃ:

  1. tar.gz এবং tar.xz একই নয়; xz আরও ভাল সংক্ষেপণ সরবরাহ করে।
  2. পাইপ ব্যবহার করবেন না | কারণ এটি একই সাথে আদেশগুলি চালায় runs একের পর এক কমান্ড ব্যবহার করে ;বা &সম্পাদন করে।

+1 RHEL 5.10 এ, আমি কোনও Jবিকল্প দেখতে পাচ্ছি না , তবে এটি কাজ করে। আমার মনে হয় আপনার RHEL6 দরকার 6
ব্রায়ান

2
আউটপুটটি টার থেকে xz এ পাইপ করতে আদেশগুলি কেন সামঞ্জস্য করবেন না?
mwfearnley

@ এমডাব্লুফের্নলি আমি মনে করি নোটটি কেবলমাত্র জোর দেওয়ার জন্যই যে আদেশগুলি ক্রমান্বয়ে কার্যকর করা দরকার। যেহেতু ফাইলের নাম দুটি কমান্ডেই ব্যবহৃত হয়, তাই তারা স্ট্যান্ডার্ড আউটপুট বা ইনপুট থেকে ডেটা লিখবে না বা পড়বে না। ফাইলের নাম উল্লেখ না করে যদি কমান্ডটি ব্যবহার করা হয় তবে এগুলি যেমন শৃঙ্খলাবদ্ধ হতে পারে tar -c file-to-compress | xz -z > file.tar.xz
জ্যাক কিউ

ব্যবহার &একের পর এক কমান্ড আরম্ভ করবে না। পরিবর্তে, এটি পটভূমি প্রক্রিয়া হিসাবে প্রথমটি চালু করবে।
লুইস লাভায়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.