আমি জায়গায় ফাইলগুলি সংকুচিত করব কীভাবে?


20

আমার কাছে 90% হার্ড-ডিস্ক ব্যবহার সহ একটি মেশিন রয়েছে। আমি এর 500+ লগ ফাইলগুলিকে একটি নতুন নতুন ফাইলে সংকুচিত করতে চাই। তবে, হার্ডডিস্কটি মূল ফাইল এবং সংক্ষেপিত ফাইল দুটিই রাখার জন্য খুব ছোট।

সুতরাং আমার যা দরকার তা হ'ল সমস্ত লগ ফাইলকে একের পর এক নতুন ফাইলে সংকুচিত করা, প্রতিটি সঙ্কলিত একবার মুছে ফেলা।

লিনাক্সে আমি কীভাবে এটি করতে পারি?


উত্তর:


18

gzipঅথবা bzip2ফাইলটি সংকুচিত করবে এবং সং-সংকুচিতটিকে স্বয়ংক্রিয়ভাবে সরিয়ে ফেলবে (এটি তাদের ডিফল্ট আচরণ)।

তবে, মনে রাখবেন যে সংকোচন প্রক্রিয়া চলাকালীন, উভয় ফাইল উপস্থিত থাকবে।

আপনি যদি লগ ফাইলগুলি সংক্ষেপণ করতে চান (যেমন: পাঠ্যযুক্ত ফাইলগুলি), আপনি পছন্দ করতে পারেন bzip2, কারণ এতে পাঠ্য ফাইলগুলির জন্য আরও ভাল অনুপাত রয়েছে।

bzip2 -9 myfile       # will produce myfile.bz2

তুলনা এবং উদাহরণ:

$ ls -l myfile
-rw-rw-r-- 1 apaul apaul 585999 29 april 10:09 myfile

$ bzip2 -9 myfile

$ ls -l myfile*
-rw-rw-r-- 1 apaul apaul 115780 29 april 10:09 myfile.bz2

$ bunzip2 myfile.bz2

$ gzip -9 myfile

$ ls -l myfile*
-rw-rw-r-- 1 apaul apaul 146234 29 april 10:09 myfile.gz

@ জোজোও আমাকে একটি মন্তব্যে বলেছিলেন আপডেট হিসাবে, আকর্ষণীয়ভাবে, xzডিফল্ট বিকল্পগুলির সাথে প্লেইন ফাইলগুলিতে সেরা অনুপাত রয়েছে বলে মনে হচ্ছে:

$ xz -9 myfile

$ ls -l myfile*
-rw-rw-r-- 1 apaul apaul 109384 29 april 10:09 myfile.xz

আরও তথ্যের জন্য, এখানে বিভিন্ন সরঞ্জামের জন্য একটি আকর্ষণীয় মানদণ্ড রয়েছে: http://binfalse.de/2011/04/04/compistance-of-compression/

উপরের উদাহরণের -9জন্য , আমি একটি সেরা সংক্ষেপণ অনুপাতের জন্য ব্যবহার করি , তবে যদি অনুপাতের চেয়ে ডেটা সংকোচন করার সময় প্রয়োজন হয় তবে আপনি এটি ব্যবহার না করাই ভাল (একটি নিম্ন বিকল্প, অর্থাৎ -1, বা এর মধ্যে কিছু ব্যবহার করুন)।


2
+1 টি; শুধু কৌতূহলী: আপনি একটি যোগ করতে পারেন xz myfile?
জাজাও

2
@ জাজাও ধন্যবাদ! এটি আকর্ষণীয়, আমি ব্যবহার করতে অভ্যস্ত না xz, তবে আমি এখন এটি বিবেচনা করব। আমার পোস্টের আপডেট দেখুন।
এপল

3
দয়া করে করবেন না xz -9। এটি সংকোচনের অনুপাত উল্লেখযোগ্যভাবে উন্নত না করে, সংক্ষেপণ / ডেকম্প্রেশনগুলির জন্য প্রয়োজনীয় মেমরিটিকে ব্যাপকভাবে বৃদ্ধি করে। ম্যানপেজ এমনকি বলে (জোর দেওয়া তাদের) "" বিশেষত, Gzip (1) এবং bzip2 (1) এর মতো সমস্ত কিছুর জন্য অন্ধভাবে -9 ব্যবহার করা ভাল ধারণা নয় "। ডিফল্ট xz -6যথেষ্ট ভাল, এবং এমনকি xz -0/ xz -1সাধারণত তুলনায় ভাল কমপ্রেস gzip -9
ব্যবহারকারী 49740

@ user49740 আপনি ঠিক বলেছেন। আমি খুব কমই ব্যবহার করি -9, তবে আমি এখানে ব্যবহার করেছি যেহেতু "একই স্কেলে" সংক্ষেপণের অনুপাতের জন্য আমি এক ধরণের মানদণ্ড তৈরি করতে চেয়েছিলাম। তবে আবার, আপনি সম্পূর্ণরূপে ঠিক বলেছেন: অন্ধভাবে ব্যবহার করা খারাপ ধারণা -9
এপল

15

আমি নিজেই একটি টার সমাধান বের করেছিলাম।
এটি একক ফাইলটিকে লক্ষ্য ফাইলটিতে সংকুচিত করার পরে মুছে ফেলে।
সংকোচনের গতি যদিও খুব দ্রুত নয়। কমান্ডটি দেখে মনে হচ্ছে:

tar -zcvf my_log.tar.gz *.log --remove-files

1
ভাল 'ওল তার। +1
হারুন হল

1

@পৌলের পরিপূরক হিসাবে, আমি পৃথকভাবে সংকোচনকারী ফাইলগুলিকে জোর দিয়েছি

 bzip2 *.log.*

(gzip, xz, বা আপনার পছন্দের ফাইল জিপ কোনটি দ্বারা bzip2 প্রতিস্থাপন করুন) গুরুত্বপূর্ণ হতে পারে:

এই পদ্ধতিতে আপনি এখনও ( bzcat file.bz2), অনুসন্ধান ( bzgrep file.bz2), সংক্ষিপ্ত vi file.bz2ফাইলটি সম্পাদনা করতে ( ) সম্পাদনা করতে এবং প্রয়োজনে পুরানোগুলি সরাতে পারেন।


1

আমি এটির বিএসডি-সংস্করণে করার চেষ্টা করছিলাম। এই ক্ষেত্রে, --remove-ফাইল বিকল্প উপলব্ধ নেই। আমি যা করে শেষ করেছি (এবং কাজ করেছেন) তা হ'ল:

find folder_to_tar -type f -exec tar --append --file=output_tar_file.tar {} \; -exec rm -v {} \;

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