আমি কেন একটি একক ফাইল ট্যারি করব?


101

আমার সংস্থায়, আমরা একটি db.dump.tar.gzফাইল হিসাবে স্থানীয় উন্নয়ন ডেটাবেস স্ন্যাপশট ডাউনলোড করি । সংক্ষেপণটি বোঝায়, তবে তারবালটিতে কেবল একটি একক ফাইল ( db.dump) থাকে।

একটি একক ফাইল আর্কাইভ করার কোনও বিন্দু আছে, বা .tar.gzকেবল এইরকম একটি সাধারণ প্রতিমা? শুধু কেন নয় .gz?


5
এটি আমার মতে কনভেনশনের বিষয় মাত্র। লোকেরা যখন জিজেড এক্সটেনশান সহ কোনও ফাইল দেখেন, তাদের ডিফল্ট চিন্তাভাবনা হ'ল ব্যবহার tar -zxvf। তবে যারা ফাইলের নামটি দেখেন এবং দেখতে পান যে এটির .tgzএক্সটেনশনটি নেই, ডিবি ডাম্প ফাইলটি জিপ করা পুরোপুরি ঠিক। যেহেতু আমি সংক্ষেপে অ্যালগরিদমগুলি বিস্তারিতভাবে জানি না, তাই আমি নিশ্চিত নই যে ডারটি ডিবি ডাম্পের মতো স্পার্স ফাইলগুলিতে কোনও সংক্ষেপণ তৈরি করে কিনা, তবে সরল পাঠ্য ফাইলগুলির জন্য, ফাইলের সরাসরি জিজিপ প্রথমে ট্যারি করার চেয়ে খুব ছোট আকারের সুবিধা দেয় এবং জিজেপ করে ফাইলটি
আইএনএন করছেন

3
সমস্ত ফাইল একক ফাইলই করবে ফাইলটির শুরু এবং শেষের জন্য কয়েকটি মেটাডেটা ব্লক যুক্ত করা। আসল ফাইল ডেটা টান দিয়ে সংক্ষেপককে ছোঁয়া যায় unt সুতরাং একটি বড় ফাইলের জন্য প্লেইন সংক্ষেপণ এবং টেরিংয়ের মধ্যে আকারের পার্থক্যটি নগন্য ig
প্লাগওয়াশ

অতীতে বিভিন্ন সংকোচনের পদ্ধতির চেষ্টা করার সময় আমি .tar.gzঅন্যান্য বেশিরভাগ সাধারণ পদ্ধতির চেয়ে সেরা found আমি মনে করি এটি ন্যায়বিচারের চেয়ে শ্রেষ্ঠ ছিল .tarতবে এটি ন্যায়বিচারের চেয়ে ভাল ছিল কিনা তা মনে করতে পারি না .gz। হাস্যকরভাবে উইন্ডোর .cabফর্ম্যাটটি আমার চেষ্টা করা পদ্ধতিগুলির মধ্যে সেরা ছিল যা খুব অপ্রত্যাশিত ছিল।
ফারাপ

@ ফারাপ tarকোনও সংকোচনের অ্যালগরিদম নয়, এটি একটি সংরক্ষণাগার বিন্যাস
বাগানের হেড

1
@ গ্রেডেনহেড ওয়েল এটি কেন খুব ভাল কাজ করে না তা ব্যাখ্যা করবে।
ফারাপ

উত্তর:


163

ব্যবহারের উপকারিতা .tar.gzপরিবর্তে .gzযে

  • tarএর চেয়ে বেশি মেটা-ডেটা (ইউনিক্স অনুমতি ইত্যাদি) সঞ্চয় করে gzip
  • একাধিক ফাইল সংরক্ষণের জন্য সেটআপটিকে আরও সহজেই প্রসারিত করা যায়
  • .tar.gz ফাইলগুলি খুব সাধারণ, কেবল-গিজিপযুক্ত ফাইলগুলি কিছু ব্যবহারকারীকে ধাঁধা দিতে পারে। (সিএফ। মেলবার্লাস মন্তব্য )

ব্যবহারের ওভারহেডও tarখুব ছোট।

যদি সত্যিই প্রয়োজন না হয়, তবে আমি এখনও কোনও একটি ফাইলই ট্যারে করার পরামর্শ দিই না। অনেকগুলি দরকারী সরঞ্জাম রয়েছে যা সংকুচিত একক ফাইলগুলিতে সরাসরি অ্যাক্সেস করতে পারে (যেমন zcat, zgrepইত্যাদি - এছাড়াও বিদ্যমান bzip2এবং এর জন্য xz)।


35
আমি মেটা-ডেটা দিকটি বিবেচনা করি নি। খুব ভাল পয়েন্ট
বাগানের মাথা

5
আমি যদি একটি দেখতে পাই তবে .gzআমার প্রথম প্রবৃত্তিটি হচ্ছে tar -zxf foo.gz। জিজিপ এমনকি একটি কমান্ডও মনে রাখতে আরও কয়েক সেকেন্ড সময় লাগে।
বিজিস্ট্যাক 15

2
@ bgStack15 FWIW আপনার z(বা সেই -বিষয়টির জন্য) দরকার নেই, বেশিরভাগ আধুনিক tarগুলি স্বয়ংক্রিয়ভাবে ফাইলটি সঙ্কুচিত করা দরকার তা সনাক্ত করবে।
ড্র্রুবেন

2
ডিফল্টরূপে gzipমূল ফাইলের নাম এবং সময় স্ট্যাম্প সংরক্ষণ করবে। -Nএগুলি পুনরুদ্ধার করতে সংক্ষেপণ করার সময় আপনি বিকল্পটি ব্যবহার করতে পারেন ।
রস রিজ

@ রোসরিজ ধন্যবাদ, আমি আবার মূল ফাইলের নামটি মুছে ফেললাম।
jofel

63

আপনি আসলে প্রশ্নের অর্ধেক জিজ্ঞাসা করছেন। অন্য প্রশ্নটি হচ্ছে, "আমি জিজিপ দিয়ে একটি ট্যারি ফাইলটি সংকুচিত করব কেন?"। এবং উত্তরটি কেবল gzipফাইলকে ছোট করে তোলে না (বেশিরভাগ ক্ষেত্রে):

tar:

  • ফাইলের নাম এবং অন্যান্য মেটাডেটা সঞ্চয় করে : মোড, মালিক আইডি, গ্রুপ আইডি, ফাইলাইজ, সংশোধন সময়
  • একটি চেকসাম সঞ্চয় করে (কেবল শিরোনামের জন্য)

gzip:

  • মূল ফাইলের নাম সংরক্ষণ করতে পারে তবে এটি optionচ্ছিক
  • মূল ডেটার উপরে একটি সিআরসি -32 চেকসাম রয়েছে
  • এটি ফাইলকে সংকুচিত করে

কেবলমাত্র tarআপনিই নিশ্চিত হতে পারবেন না যে আপনার ডেটাটি কলুষিত হয়নি। কেবলমাত্র gzipআপনি ব্যবহারকারী / গোষ্ঠী আইডি পুনরুদ্ধার করতে পারবেন না, পরিবর্তনের সময় এবং মূল ফাইল নামটি সম্ভব নয়।

সংমিশ্রণটি পৃথক কম্যান্ড / ফর্ম্যাটগুলি সরবরাহের চেয়ে আরও শক্তিশালী, কারণ তারা একে অপরের বৈশিষ্ট্যগুলিকে পরিপূরক করে


তা স্পষ্ট করার জন্য ধন্যবাদ! আমি যখন tarউইকিপিডিয়া পৃষ্ঠাটি পড়ছিলাম, তখন আমি বর্ণনাটি ভুল বুঝে বোঝাতে চেয়েছিলাম যে চেকসামটি পুরো ফাইলটির জন্য।
গার্ডেনহেড

এটি আমার কাছে সঠিক উত্তরটির মতো মনে হয়। আমি আরও কয়েকটি কারণ যুক্ত করব, যদি আপনি সম্মত হন তবে আপনি সম্পাদনা করতে চান। 1) .tgz ওভার .tar বা .gz একা করার জন্য অ্যাডমিনের কোনও অতিরিক্ত ব্যয় নেই: তারা সকলেই কেবল একটি আদেশ 2 ডিবি ব্যাকআপগুলি এর মধ্যে একটি মাত্র। তারা একই ওয়ার্কফ্লো, সরঞ্জাম এবং কমান্ডগুলি এক বা একাধিক ফাইলের ব্যাক আপ নিতে পারে কিনা তা ব্যবহার করতে পারে; সুতরাং কেন একটি ফাইল আছে সেই ক্ষেত্রে জিজেপ কমান্ডের সিনট্যাক্স ব্যবহার করে স্পেশালकेস?
দেউই মরগান

30

বিষয়বস্তু সরাসরি মত কম্যান্ড-লাইন সরঞ্জামগুলির সাথে অ্যাক্সেস করা যেতে পারে - এখানে একটা বেশ বড় সুবিধা শুধুমাত্র gzipped পাঠ্য ফাইল ব্যবহার হয় less, zgrep, zcat


আকর্ষণীয় বিষয়, তবে প্রশ্নটি একটি ডাটাবেস স্ন্যাপশট সম্পর্কে, কোনও পাঠ্য ফাইল হওয়ার সম্ভাবনা নেই, এবং কেবল-জিপিড নয়।
আন্ডারস্কোর_ডি

9
@ আসর_সক_আর আমার সমস্ত ডাটাবেস ডাম্প (বেশিরভাগ মাইএসকিএল এবং পিজিএসকিএল) হ'ল পাঠ্য ডাম্প, আংশিক কারণ ডাম্পকে আংশিক-দুর্নীতিতে ঘটলে তারা আরও সংরক্ষণযোগ্য হবে এবং আংশিক কারণ আমি স্বাভাবিক সরঞ্জামগুলির সাথে কোনও পুনরুদ্ধার প্রাক-প্রক্রিয়া করতে পারি (সেড , awk, perl, ইত্যাদি) যদি আমার প্রয়োজন হয়। অর্থাত্ বাইনারি ডাম্পের চেয়ে বেশি নির্ভরযোগ্য এবং বেশি কার্যকর। ট্রেড-অফটি হ'ল পাঠ্য-ডাম্পগুলি বৃহত্তর থাকে (কে যত্ন করে? ডিস্কের স্থানটি সস্তা এবং আমাদের ভাল সংকোচন রয়েছে) এবং পুনরুদ্ধারগুলি উল্লেখযোগ্যভাবে ধীর হয় (তবে আপনি যদি কোনও লেনদেনে পুনরায় পুনরায় গুটিয়ে রাখেন তবে কম)।
ক্যাস

1
প্লেইন সরঞ্জামগুলিতে কেবল কোনও ডিকম্প্রেসারের আউটপুট পাইপিং করার মাধ্যমে এই সরঞ্জামগুলির সুবিধা কী?
কোডসইনচাউস

21

আমি বলব এটি সম্ভবত সম্ভব যে তারা টের ছাড়াই gzip / bzip2 / xz ব্যবহার করতে পারে বুঝতে পারে না । সম্ভবত তারা ডস / উইন্ডোজ ব্যাকগ্রাউন্ড থেকে এসেছে যেখানে একটি একক বিন্যাসে ( জিপ , আরএআর , ইত্যাদি) সংহতকরণ এবং সংরক্ষণাগার সংগ্রহের পক্ষে স্বাভাবিক ।

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


2
জিএনইউ টারের সাথে, স্টাডআউটে আউটপুটে কেবল -O স্যুইচ লাগে, তাই আমি বলব না যে এটি আরও শক্ত!
হাইড

5
প্রথম অনুচ্ছেদটি tgzএক্সটেনশনটি ব্যবহার করে ফাইলগুলির পক্ষে যথেষ্ট কলুষিত বলে মনে হচ্ছে । যাইহোক, ওপি-র ক্ষেত্রে ব্যবহার করা হয় tar.gz- এবং যদি এই হাইপোথটিকাল প্রাক্তন উইন / ডস ব্যবহারকারীরা আমার মতো কিছু হন তবে এই জাতীয় ফাইলটি দেখার সময় তারা প্রথমে বলে: 'এর 2 টি এক্সটেনশন কেন?' তারপরে তারা এটিকে গুগল করে এবং দ্রুত উত্তর পেয়ে যায়, যা স্পষ্টভাবে ব্যাখ্যা করে যে tarএবং সংক্ষেপণ পৃথক। ;-)
আন্ডারস্কোর_

17

একটি গুরুত্বপূর্ণ পার্থক্য রয়েছে যা tarকিছু পরিস্থিতিতে গুরুত্বপূর্ণ ব্যবহার করে ফেলতে পারে : @ জোফেল তার উত্তরে উল্লিখিত "মেটাডেটা" ছাড়াও সংরক্ষণাগারে tar ফাইলের নামটি রেকর্ড করে । আপনি যখন এটি নিষ্কাশন করবেন, সংরক্ষণাগারটি কী বলা হোক না কেন আপনি আসল ফাইলের নামটি পাবেন get

আপনার ক্ষেত্রে টার সংরক্ষণাগার এবং এটিতে থাকা ফাইলটির সম্পর্কিত নাম রয়েছে db.dump.tar.gzএবং db.tarতবে ধরুন আপনি টার ফাইলটি 20-Apr-16.dump.tgzবা যে কোনও কিছুতে নতুন নামকরণ করেছেন । এটি দিয়ে আন্টার করুন tar xvfz, এবং আপনি পাবেন db.dump। তুলনার জন্য, আনজিপ করুন 20-Apr-16.dump.gzএবং আপনি পেয়েছেন 20-Apr-16.dump। (সম্পাদনা করুন: মন্তব্যে উল্লিখিত হিসাবে, জিজিপ ফাইলের একটি রেকর্ডও তৈরি করে; তবে আনজিপ করার সময় এটি সাধারণত ব্যবহৃত হয় না)। একটি tarসংরক্ষণাগারে এমন একটি আপেক্ষিক পথের নামও থাকতে পারে যা উত্তোলিত ফাইলটিকে একটি উপ ডিরেক্টরিতে রাখে।

আপনার ব্যবহারের ক্ষেত্রে এই জাতীয় ফাইলনাম অধ্যবসায় প্রয়োজন, বা এমনকি চেয়েছিল , বা আসলেই অনাকাঙ্ক্ষিত কিনা তা নির্দেশ করবে । তবে অবশ্যই, সংক্ষেপণ নির্বিশেষে, একটি tarসংরক্ষণাগার একটি নিয়মিত ফাইল থেকে আলাদাভাবে ভ্রমণ করে।


6
gzip মূল ফাইলের নামটিও রেকর্ড করে।
psusi

8
হা. নামটি জিজিপ শিরোনামে alচ্ছিক — স্পষ্টতই আপনি কোনও কমান্ডের স্ট্রিমিং আউটপুটকে সংকুচিত করলে একটি হবে না — এবং বেশিরভাগ সরঞ্জামগুলি ডিফল্টরূপে এটি পুনরুদ্ধার করবে না (উদাহরণস্বরূপ, সংক্ষেপণ করার সময় আপনাকে gzip --nameস্পষ্টভাবে ব্যবহার করতে হবে ), তবে ফাইলনেম অধ্যবসায় পেতে আপনার ব্যবহার করতে হবে না।
মাইলস 3

এটি নির্দেশ করার জন্য ধন্যবাদ, আমি এটি জানতাম না। তবুও, যেহেতু এটি ডিফল্ট আচরণ নয়, বিন্দুটি দাঁড়িয়েছে: টর্মে বিন্যাসে একটি ফাইল বিতরণ প্রাপকের হস্তক্ষেপ ছাড়াই মূল ফাইলের নামটি (এবং সম্ভবত সম্পর্কিত সম্পর্ক) সংরক্ষণ করে। একটি (ছ) জিপ করা ফাইল বিতরণ করা হয় না।
অ্যালেক্সিস

8

অন্যান্য সমস্ত উত্তর ছাড়াও, আমি সম্প্রতি একটি স্ক্রিপ্টিং পরিস্থিতি আঘাত করেছি যেখানে কেবলমাত্র একটি ফাইল প্রত্যাশা করা হয়েছিল, তবে একজন পূর্ববর্তী কর্মচারী একাধিক ফাইল উত্পন্ন হওয়ার সম্ভাবনা সহ স্ক্রিপ্টগুলি লিখেছিলেন। সুতরাং ফাইলগুলি ট্যারেড এবং বিজিপ করা হয়েছিল, তারপরে স্থানান্তরিত হয়েছিল এবং প্রসারিত হয়েছিল।

প্রক্রিয়াটি যখন বিন্দুতে বৃদ্ধি পায় এটি একটি 4.3 জিবি ফাইল তৈরি করে, এটি ঘূর্ণায়মান হয় এবং একটি .ডাম্প ফাইল ছাড়াও একটি .dump.001 ফাইল তৈরি করে। সমস্ত স্ক্রিপ্ট সবেমাত্র কাজ করে চলেছে।

এটি সক্রিয় সাসাদমিন আলস্যতা সংজ্ঞায়িত!


2

টাইমস্ট্যাম্প সংরক্ষণ করে এটি অনুলিপি করতে (যা ডাউনলোডগুলিতে সহজেই উপেক্ষিত হয়) আমি একটি একক ফাইলকে টার্গেট করব। ফাইল অনুমতি এবং মালিকানা কম গুরুত্বপূর্ণ: ডাউনলোড হ'ল এমন একটি শব্দ যা সিস্টেমগুলিতে প্রযোজ্য যা ভালভাবে সংহত নয়।

তারড হোক বা না হোক, ডাউনলোডগুলি দ্রুত করার জন্য ফাইলটি সংকোচিত করা - এবং ডিস্কস্পেসের বাইরে চলে যাওয়া এড়াতে এটি স্ট্যান্ডার্ড অনুশীলন।


-1

আনুষ্ঠানিক ফাইল সিস্টেমে লিখিত না একাধিক ফাইলের জন্য টার বিশেষত কার্যকর it যদি কোনও কারণে উপলক্ষে থাকে, কেবলমাত্র 1 টি ফাইল লিখতে হবে এটির আসল পরিণতি নেই। আমি পার্টিশন বা ফাইল সিস্টেম বিবেচনা না করে সরাসরি আমার .tar.gz / dev / sdx এ ডিডি করতে পারি। এটি পাশাপাশি টেপ হতে পারে।

স্ক্রিপ্ট বা প্রক্রিয়া হেরিটেজ কোড থেকে অনুলিপি করা হয়েছে বলে এটি সাধারণত করা হয়। কেবলমাত্র একটি ফাইল থাকলে অবশ্যই টাকার প্রয়োজন নেই, তবে এটি একাধিক ফাইলের উন্নতির জায়গা ছেড়ে দিয়েছে ......

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