আমি কীভাবে .xz সংরক্ষণাগারে একাধিক ফাইল সংকুচিত করব?


উত্তর:


10

যদিও হিসাবে Zacharee1 দ্বারা বিস্তারিত এবং দ্বারা heemayl সাধারণত আপনাকে যা করতে চাইবেন কি, অন্য পথে নল tarred ডেটা হয় কমান্ড প্রয়োগ করুন:tar cJf archive files...xz

tar c files... | xz > archive.tar.xz

যেহেতু উবুন্টু বিকল্পটি tarসমর্থন করে J, আপনি বিকল্পগুলি পাস করতে ইচ্ছুক হলে এই বিকল্প উপায় বিশেষভাবে কার্যকর xz

এই উদাহরণে, আমি কয়েকটি টিআইএফএফ ফাইলকে উচ্চ স্তরের সংকোচনের ( -9টু xz) এবং ভার্বোজ আউটপুট ( vটু tar, -vটু xz) এর সাথে জিজিপ করি :

ek@Io:~/Pictures$ tar vc *.tif{,f} | xz -9v > pics.tar.xz
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
  100 %       207.3 KiB / 290.0 KiB = 0.715

এটি অবশ্যই দুটি স্বতন্ত্র পৃথক পদক্ষেপে করা যেতে পারে:

ek@Io:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
ek@Io:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
  100 %       207.3 KiB / 290.0 KiB = 0.715

এই দুটি উপায় তারা কীভাবে কাজ করে তার পক্ষে আসলে সমতুল্য নয়, যদিও .tar.xzশেষ পর্যন্ত তারা উত্পন্ন ফাইলগুলি একই হওয়া উচিত (এবং যখন আমি এটি পরীক্ষা করেছি তখন)।

  • প্রথম স্তরে, আউটপুট এর tarহয় পাইপ ( |) এর ইনপুট এর xz। প্রায় অবিলম্বে xzথেকে ডেটা গ্রহণ করে tarএবং কোনও মধ্যবর্তী সংকোচিত টার ফাইল কখনও তৈরি হয় না। মানে এই যে প্রথম উপায় মূলত সমতুল্য হয় থেকেtar cJf archive files... , এর পাশ অতিরিক্ত আর্গুমেন্ট করা ছাড়া তাদের xz
  • দ্বিতীয়টিতে, একটি কমপ্রেসড টার আর্কাইভ প্রথম কমান্ড দ্বারা তৈরি করা হয়, তারপরে xzদ্বিতীয় কমান্ড দ্বারা সংকুচিত হয় । ( xzমূল ফাইলটি হয়ে গেলে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়, যদি না -k/ --keep

আরো পড়ার জন্য, দেখুন রাফায়েল ভ্যান হর্ন দ্বারা পোস্টটি এবং tarএবং xzmanpages।


1
+ 1..এটি একটি ভাল যখন উচ্চতর (বা পরিবর্তিত) সংক্ষেপণের অনুপাতটি পছন্দ হয় ..
হিমাইল

2
হ্যালো 2015! আপনি ব্যবহার করে বিভিন্ন সংকোচনের মাত্রা অর্জনের অন্য উপায়টি tar -Jহ'ল পরিবেশের পরিবর্তনশীল নির্দিষ্টকরণ XZ_OPT, XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
অনুরোধটিকে এমনভাবে

2
@ বাগ এটি একটি দুর্দান্ত ধারণা। আমার কাছে মনে হয় এটি পৃথক পৃথক উত্তরের জন্য পরোয়ানা দেয়। আপনি কি পোস্ট করতে ইচ্ছুক?
এলিয়াহ

13

বিকল্প tarসহ ব্যবহার করুন -J:

tar -cvJf images.tar.xz /directory/containing/images/*

tar এক (এক সংরক্ষণাগার) মধ্যে একাধিক ফাইল একত্রিত করতে ব্যবহৃত হয় এবং তারপরে আমাদের XZ সংক্ষেপণ অ্যালগরিদম ব্যবহার করে সংরক্ষণাগারটি সংকুচিত করতে হবে।

থেকে man tar:

-c, --create
       create a new archive
-v, --verbose
       verbosely list files processed
-J, --xz

-f, --file ARCHIVE
       use archive file or device ARCHIVE

এছাড়াও মনে রাখবেন যে images.tar.xzএটি বর্তমান ডিরেক্টরিতে তৈরি করা হবে, যদি আপনি এটি অন্য কোথাও ব্যবহার করে সংরক্ষণ করতে চান /full/path/to/images.tar.xz


বেশ কয়েকটি বিশাল পিএসডি জাজিংয়ের প্রক্রিয়া শুরু করে এবং সত্যি কথা বলতে, সংরক্ষণাগারটি কিছু বিশাল সংকোচনের প্রস্তাব দিচ্ছে! 400 এমবি + এখন 200 এমবি
দূরবর্তী গ্রাফিকস

1
great..although xzমধ্যে ধীরতম হয় xz, gzip, bzip2others..the মন্থরতা চেয়ে তার উচ্চতর কম্প্রেশন অনুপাত কারণে চুক্তি মূল্য যদি সঙ্গে আপনি আরো কম্প্রেশন চাই ..
heemayl

আমার পিএসডিএসগুলি মোট, like০০-৯০০ এমবি মোট এক্সডি
দূরবর্তী গ্রাফিক্স

আপনি যেতে ভাল ....
হিমাইল

কিছু কিছু ত্রুটি ._।
দূরবর্তী গ্রাফিকস

3

এই কমান্ড ব্যবহার করুন: tar cJf <archive.tar.xz> <files>। স্থানের সাথে ফাইলের পাথ পৃথক করুন।


আপনার এটি দরকার:-cfJ
এবি

1
@AB: আপনি প্রয়োজন হবে না -front..from মধ্যে man tar: A function letter need not be prefixed with ``-''..so tar cJfএকেবারে হয় ঠিক আছে।
হিমাইল 13

@ হেইমাইল তবে এটি কাজ করছে বলে মনে হয় না। আমি এটি '-' ছাড়াই চেষ্টা করেছি, তবে তারারটি সম্পন্ন হয়নি।
এবি

@ হেইমাইল এটাই আমি ভেবেছিলাম
দ্য ওয়ান্ডারার 13

1
মনে রাখবেন যে আপনার প্রথম উত্তরটির সাথে আপনি আটকে থাকা উচিত tar cJf, এটি আমার উত্তরটি ইতিমধ্যে tar --cvJfপ্রথমে আবৃত হিসাবে ওপিকে এটি করার অন্য একটি উপায় দেয় ..
হিমাইল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.