Tar -zcvf ব্যবহার করার সময় সংকোচনের স্তর কীভাবে নির্দিষ্ট করবেন?


142

আমি কাজ প্রায়শই প্রায়ই gzip ডিরেক্টরি। আমি সাধারণত যা করি তা হ'ল

tar -zcvf file.tar.gz /path/to/directory

এখানে সংক্ষেপণের স্তরটি নির্দিষ্ট করার কোনও উপায় আছে কি? কমপ্রেস করতে আরও বেশি সময় লাগলেও আমি সর্বোত্তম সংক্ষেপনটি ব্যবহার করতে চাই।

উত্তর:


142
GZIP=-9 tar cvzf file.tar.gz /path/to/directory

ধরে নিচ্ছি আপনি ব্যাশ ব্যবহার করছেন সাধারণত, GZIP এনভায়রনমেন্ট ভেরিয়েবলটি "-9" এ সেট করুন এবং সাধারণত টার চালান।

এছাড়াও - আপনি যদি সত্যিই সেরা সংক্ষেপণ চান, gzip ব্যবহার করবেন না। Lzma বা 7z ব্যবহার করুন।

এবং জিজিপ ব্যবহার করার সময় (যা যাইহোক বিভিন্ন কারণে ভাল ধারণা) pigzপ্রোগ্রাম ব্যবহার না করে বিবেচনা করুন gzip


14
পিগজ হ'ল "প্যারালাল জিজিপ" যা জিজেপ সংক্ষেপণের জন্য আপনার সমস্ত কোর ব্যবহার করে। আপনি top200% -400 $ সিপিইউ এর মধ্যে যে কোনও জায়গায় এটি দেখতে এবং দেখতে পারেন can
ফিলিপ আলভারেজ

2
এফওয়াইআই, .bz2 ফর্ম্যাটের জন্য, ব্যবহার করুন: BZIP2 = -9 টার সিভিজেফ file.tar.bz2 / পাথ / টু / ডিরেক্টরি
টমোফুমি

3
পরিবেশের পরিবর্তনশীলটি এখন মনে হচ্ছে GZIP_OPT, ব্যবহার একই হওয়া উচিত।
দেখেন

3
জিজিপের জন্য উবুন্টু ১.0.০৪-এর ম্যান পেজ থেকে: "ভ্যাক্স / ভিএমএস-এ, প্রোগ্রামের অনুরোধের জন্য প্রতীক সেটটির সাথে বিরোধ না এড়াতে পরিবেশের পরিবর্তনশীলটির নাম জিজেপআইওপিটি" "
Sh

68

টারের জন্য জিজিপ পতাকা ব্যবহারের পরিবর্তে, ট্যারি প্রক্রিয়া শেষে ফাইলগুলি ম্যানুয়ালি জিপ করুন, তারপরে আপনি জিজিপ প্রোগ্রামের জন্য সংক্ষেপণ স্তরটি নির্দিষ্ট করতে পারবেন:

tar -cvf files.tar /path/to/file0 /path/to/file1 ; gzip -9 files.tar

অথবা আপনি ব্যবহার করতে পারেন:

tar cvf - /path/to/file0 /path/to/file1 | gzip -9 - > files.tar.gz

Gzip কমান্ড লাইনের -9 গিজিপকে সর্বাধিক সম্ভাব্য সংকোচনের স্তরটি ব্যবহার করতে বলে (ডিফল্ট হ'ল -6)।

সম্পাদনা: @ ডেপিজ মন্তব্যের ভিত্তিতে স্থির পাইপ কমান্ড লাইন।


4
পাইপ ব্যবহার করে এটি করা উচিত:tar cvf - /path/to/directory | gzip -9 - > file.tar.gz

1
"1gz" এক্সটেনশন যুক্ত করার file.tarপরে 1 ম উদাহরণটি শেষ হওয়া উচিত gzip
বনসাইভিকিং

4
আপনি এড়িয়ে যাবেন না কেন f -? যদি কোনও ফাইল না থাকে তবে এটি
স্টিডিন

Previos মন্তব্য যোগ করুন। "ম্যান টার" বিভাগ থেকে এনভায়রনমেন্টমেন্ট: টেপ ডিভাইস বা সংরক্ষণাগারটির জন্য ফাইল ব্যবহার করতে যদি ফাইলটি নির্দিষ্ট না করা থাকে। যদি এই পরিবেশের পরিবর্তনশীলটি সেট না করা হয় তবে পরিবর্তে স্ট্ডিন বা স্টডআউট ব্যবহার করুন।
মিক্ল

2
এবং আমরা "gzip -9 -" -> "gzip -9" হ্রাস করতে পারি। "ম্যান জিজিপ" বিভাগ থেকে বর্ণনা: কোনও ফাইল নির্দিষ্ট না করা থাকলে বা কোনও ফাইলের নাম "-" থাকলে মানক ইনপুটটি স্ট্যান্ডার্ড আউটপুটে সংকুচিত হয়।
মিক্ল

53

টার এর আধুনিক সংস্করণগুলি xz সংরক্ষণাগার ফর্ম্যাটটিকে সমর্থন করে (জিএনইউ টার, ২০০৯ সালে ১.২২ সাল থেকে , ২০১০ সালে ১.১.0.০ থেকে ব্যসিবক্স )।

এটা তোলে উপর ভিত্তি করে এর lzma2 , ধরনের একটি পছন্দ 7-zip সংস্করণ GZ । আপনি যদি এক্স জেড সমর্থন প্রয়োজনের প্রয়োজনের সাথে ঠিক থাকেন তবে এটি আরও ভাল সংক্ষেপণ দেয়।

tar -Jcvf file.tar.xz /path/to/directory

আমি এখানেই সন্ধান করেছি (মূলত এই প্রশ্নের একটি দ্বিপি, তবে ইউনিক্স স্ট্যাকেক্সচেঞ্জে) যে অন্য পোস্টে জিজেআইপি-র মত একই এক্সজেড সংক্ষেপণের স্তর নিয়ন্ত্রণ করতে একটি এক্স জেড_ওপিটি = -9 পরিবেশ পরিবর্তনশীলও রয়েছে।

XZ_OPT=-9 tar -Jcvf file.tar.xz /path/to/directory

2
+1 এক্সজেড বিজিপ 2 এবং জিজিপ উভয়ের চেয়ে অনেক বেশি ভাল। এখানে একটি তুলনা রয়েছে: tukaani.org/lzma/benchmark.html
ব্যবহারকারী 1

8
বাণিজ্য বন্ধ গতি। এক্সজেড উল্লেখযোগ্যভাবে ধীর।
বেল

32
tar cv /path/to/directory | gzip --best > file.tar.gz

এটি ম্যাট্রিক্স মোলের দ্বিতীয় সমাধান, তবে কিছুটা ছোট করা:

টার কল করার সময়, বিকল্পটি fবলছে যে আউটপুটটি একটি ফাইল। এটিকে -(স্টাডআউট) সেট করা তার আউটপুটটিকে স্টডআউটে লিখতে দেয় যা উভয় fএবং ছাড়াই ডিফল্ট আচরণ -

এবং gzipম্যান পৃষ্ঠা অনুসারে বলা হয়েছে, যদি কোনও ফাইল নির্দিষ্ট না করা হয় তবে জিজিপ স্ট্যান্ডার্ড ইনপুট থেকে সংকুচিত হবে। কল -করার প্রয়োজন নেই gzip

বিকল্প --best(সমতুল্য -9) সর্বোচ্চ সংকোচনের স্তর সেট করে।


1
এটি সুন্দরভাবে কাজ করে। এছাড়াও আপনি যদি রুট হিসাবে চালান তবে অনুমতি এবং মালিকরাও সংরক্ষিত থাকে। অন্যথায় আপনাকে অবশ্যই উল্লেখ করতে হবে। এছাড়াও যদি এটি সুস্পষ্ট না হয় তবে "-9" হ'ল সেরা সংকোচন এবং "-1" দ্রুততম সংকোচনের হয়। আপনার কাছে প্রচুর ফাইল থাকলে "-1" এখনও অনেক দীর্ঘ সময় নেয় ;-)
পিজে ব্রুনেট

এটি xzএবং এর pixzসাথেও কাজ করে। মধ্যবর্তী .tar ফাইল না তৈরি করে সমান্তরাল সংক্ষেপণের জন্য ব্যবহৃত থ্রেডের সংখ্যা নিয়ন্ত্রণ করার এটি দুর্দান্ত উপায়। ভালো লেগেছেtar -cv /path/to/dir | pixz -p4 > output.tpxz
joelostblom

10

-আই ব্যবহার করে সংক্ষেপণ প্রোগ্রাম নির্দিষ্ট করার বিকল্প রয়েছে। এটি সংকোচনের স্তর বিকল্প অন্তর্ভুক্ত করতে পারে।

tar -I 'gzip -9' -cvf file.tar.gz /path/to/directory

2
সেন্টের 6 এবং 7-তে সরবরাহ করা টারের পুরানো সংস্করণগুলি আর্গগুলিতে আর্গুমেন্ট সরবরাহ করার পক্ষে সমর্থন করে না -I, তারা পুরো জিনিসটিকে একটি প্রোগ্রামের নাম হিসাবে কার্যকর করার চেষ্টা করবে এবং এভাবে ব্যর্থ হবে। ডেবিয়ান স্ট্রেচে কমপক্ষে ১.২২ ডলার হিসাবে, এটি কাজ করে।
চিতা

2

এবং অবশ্যই ম্যাকোএস বিএসডি-উত্পন্ন টার আলাদা হতে হবে:

tar -czf file.tar.gz --options gzip:compression-level=9 /path/to/directory
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.