Tar -tvf ফাইলটি সঙ্কুচিত করে বা কেবল নামগুলি তালিকাবদ্ধ করে?


9

আমার আছে একটি tar.gz 32 জিবি ফাইল রয়েছে। আমি এটি থেকে নির্দিষ্ট ফোল্ডারগুলি বের করার চেষ্টা করছিলাম তাই আমি ফাইলের কাঠামোটি দেখতে নিম্নলিখিত কমান্ডের সাথে বিষয়বস্তুগুলি তালিকাভুক্ত করেছি:

tar -tvf file.tar.gz > files.txt

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



3
@ এসএমসিআই: এটি স্বয়ংক্রিয়ভাবে সনাক্ত হয়েছে, সুতরাং সত্যই ভুলে যায় না।
রাই-

উত্তর:


14

tar.gz ফাইলগুলির একটি সূচক নেই। জিপ বা অন্যান্য সংরক্ষণাগার ফর্ম্যাটগুলির বিপরীতে অন্তর্ভুক্ত ফাইলগুলি বা অন্যান্য মেটাডেটার একটি তালিকা পাওয়া তুচ্ছ বা সস্তা নয়। সংরক্ষণাগারে অন্তর্ভুক্ত কোন ফাইলগুলি আপনাকে দেখানোর জন্য, টারকে প্রকৃতপক্ষে সংরক্ষণাগারটি সঙ্কুচিত করা উচিত এবং ফাইলগুলি বের করতে হবে, যদিও -tবিকল্পের ক্ষেত্রে এটি কেবল মেমরির ক্ষেত্রেই করে।

যদি আপনার ব্যবহারের ক্ষেত্রে সাধারণ প্যাটার্নটি কোনও সংরক্ষণাগারে থাকা ফাইলগুলি তালিকাভুক্ত করা হয় তবে আপনি কোনও সংরক্ষণাগার বিন্যাস ব্যবহার করে বিবেচনা করতে চাইতে পারেন যা সংকুচিত ফাইলটিতে একটি ফাইল সূচক যুক্ত করতে পারে, যেমন জিপ।

আরও জটিল পরিস্থিতিতে আপনি সম্ভবত এইচডিএফ 5 ফর্ম্যাটটিও দেখতে চান ।

মাপ

আমার উত্তরটি প্রমাণ করার জন্য আমাকে কিছু পরিমাপ করতে হয়েছিল এবং সেগুলির মধ্যে অনেকগুলি ফাইল সহ কিছু ডিরেক্টরি তৈরি করেছিলাম এবং এটি উভয়ই প্যাক করে tar czf files#.tgz files#এবং zip -r files#.zip files#

পরীক্ষাগুলির জন্য আমি প্রতিবার দুবার আনপ্যাকিং কমান্ড চালিয়েছি এবং ডিস্কের গতি পরিমাপ করা এড়াতে চেষ্টা করার জন্য দ্বিতীয় রানের ফলাফলটি নিয়েছি।

পরীক্ষা 1

নির্দেশিকা files1ধারণকারী 100,000 খালি ফাইল

$ time tar tzf files1.tgz >/dev/null
tar tzf files1.tgz > /dev/null  0,56s user 0,09s system 184% cpu 0,351 total
$ time unzip -l files1.zip >/dev/null
unzip -l files1.zip > /dev/null  0,30s user 0,34s system 99% cpu 0,649 total

জিপ এখানে ধীর।

পরীক্ষা 2

নির্দেশিকা files2ধারণকারী 512 বাইট সঙ্গে 5,000 ফাইল র্যান্ডম তথ্য প্রতিটি।

$ time tar tzf files2.tgz >/dev/null
tar tzf files2.tgz > /dev/null  0,14s user 0,03s system 129% cpu 0,131 total
$ time unzip -l files2.zip >/dev/null
unzip -l files2.zip > /dev/null  0,03s user 0,06s system 98% cpu 0,092 total

এখনও বিশ্বাসযোগ্য নয়, তবে জিপ এবার দ্রুত

পরীক্ষা 3

নির্দেশিকা files3ধারণকারী 5kB সঙ্গে 5,000 ফাইল র্যান্ডম তথ্য প্রতিটি।

$ time tar tzf files3.tgz >/dev/null
tar tzf files3.tgz > /dev/null  0,42s user 0,03s system 111% cpu 0,402 total
$ time unzip -l files3.zip >/dev/null
unzip -l files3.zip > /dev/null  0,03s user 0,06s system 99% cpu 0,093 total

এই পরীক্ষায় এটি দেখা যায় যে ফাইলগুলি যত বড় হয় ততগুলি তালিকাভুক্ত করা তার পক্ষে শক্ত।

উপসংহার

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

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