সর্বাধিক আকারের ব্লকগুলিতে বিভক্ত একটি সংরক্ষণাগার তৈরি করুন


83

আমার মোটামুটি বড় ডিরেক্টরি ব্যাকআপ করা দরকার, তবে আমি পৃথক ফাইলের আকার দ্বারা সীমাবদ্ধ। আমি মূলত একটি tar.(gz|bz2)সংরক্ষণাগার তৈরি করতে চাই যা 200MB সর্বাধিক সংরক্ষণাগারে বিভক্ত। ক্লোনজিলা এর মতো চিত্রযুক্ত ব্যাকআপগুলি বিভক্ত করে এর মতো কিছু করে:

sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac

আমি এক আদেশে এটি করার উপায় আছে কি? splitকমান্ডটি কীভাবে ব্যবহার করতে হয় তা আমি বুঝতে পেরেছি , তবে আমি চাই একটি বৃহত আর্কাইভ তৈরি করতে হবে না, তারপরে এটি আরও ছোট সংরক্ষণাগারে বিভক্ত করুন, কারণ প্রাথমিকভাবে সংরক্ষণাগারটি তৈরি করতে আমার যে ডিস্কের জায়গাটি প্রয়োজন তা দ্বিগুণ হবে।


একটি সম্পর্কিত প্রশ্ন: superuser.com/q/290986/11574
সাম্পাব্লুকপার

উত্তর:


108

আপনি বিভাজন কমান্ড ট্যারি পাইপ করতে পারেন:

tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.

কিছু * নিক্স সিস্টেমে (ওএস এক্সের মতো) আপনি নিম্নলিখিত ত্রুটিটি পেতে পারেন:

split: illegal option -- -

সেক্ষেত্রে এটি চেষ্টা করে দেখুন (দ্রষ্টব্য -b 200m:)

tar cvzf - dir/ | split -b 200m - sda1.backup.tar.gz.

যদি আপনি FAT32 ফর্ম্যাট ড্রাইভের সাথে ফিট করার জন্য ফাইলটি বিভক্ত করার চেষ্টা করছেন তবে 4294967295 এর বাইট সীমা ব্যবহার করুন example উদাহরণস্বরূপ:

tar cvzf - /Applications/Install\ macOS\ Sierra.app/ | \
split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.

3
গ্রেট! আমি কীভাবে সংরক্ষণাগারটি বের করতে পারি?
নাফটুলি কে

24
হবে cat sda1.backup.tar.gz.* | tar xzvf -কাজ?
নাফটুলি কে

3
হ্যাঁ, এটা করা উচিত। splitডিফল্টরূপে ফাইলগুলির নাম সেট করে যাতে LOCALE অনুসারে বাছাই করার সময় (যা শেল গ্লোব্বিং দ্বারা করা হয়) সঠিক ক্রমে হয়।
jordanm

4
বাগাড়ম্বরপূর্ণ ছাড়া, শুধু কি tar czf ...ছাড়া vদ্বারা একত্রীকরণ cat backup.tar.gz.* | tar tar xzf - ছাড়া v। আমি এখানে দ্বারা বাগাড়ম্বরপূর্ণ আউটপুট কোন লাভ দেখতে v
লিও লোপল্ড হার্টজ 준영

1
tar cvzf - Xcode.app/ | split -b 2000m - /Volumes/PH/xcode/xcode.tgzcd /Applications/
এক্সকোডকে

13

ম্যাকোজে, splitকমান্ডটি কিছুটা ভিন্নভাবে কাজ করে:

$ tar cvzf - foo | split -b 2500m - foo.tgz.

4

কেবল যোগ করতে: ভিএফএটি / ফ্যাট 32-এ সর্বাধিক অনুমোদিত ফাইলের আকার 2 ^ 32 বিয়োগ 1 (4294967295 বাইট) হিসাবে রয়েছে, যেমন ফাইল সিস্টেমে সর্বাধিক অনুমোদিত ফাইলের আকারের স্প্লিট কমান্ডটি হ'ল:

split -b4294967295 -d my_input_file my_output_file_splitted

3
serega@serega-sv:~$ tar -c  -M --tape-length=1024 --file /tmp/pseudo-tape.tar --new-volume-script=/tmp/new-volume.sh --volno-file=/tmp/volno /tmp/stuff-to-archive 
tar: Removing leading `/' from member names
moving /tmp/pseudo-tape.tar to /tmp/archive.1
moving /tmp/pseudo-tape.tar to /tmp/archive.2
moving /tmp/pseudo-tape.tar to /tmp/archive.3

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

serega@serega-sv:~$ cat /tmp/new-volume.sh 
dir="/tmp"
base_name="pseudo-tape.tar"
next_volume_name=`echo -n "archive."; cat $dir/volno`
echo "moving $dir/$base_name to $dir/$next_volume_name"
mv "$dir/$base_name" "$dir/$next_volume_name"

আমি আপনার উত্তরটিকে অগ্রাহ্য করি নি, কারণ এটির ব্যবহারটি দেখে আমি আনন্দিত -M --tape-length। তবে, এই উত্তরটি জিপিপ বা বিজিপ 2 সংক্ষেপণ ব্যবহার করে এমন কোনও সমাধানের জন্য ওপি-র অনুরোধকে অগ্রাহ্য করে না।
সাম্পাব্লুকুপার

সতর্কতা: আপনি কথা বলছেন না tarবরং ডাকা ক্লোন gtar(জিএনইউ টার) সম্পর্কে বলছেন । এই টার ক্লোনটি একাধিক ভলিউম সংরক্ষণাগার তৈরি করতে সহায়তা করে তবে একটি লক্ষণীয় সম্ভাবনার সাথে সেই বহুগুলি ভলিউম সংরক্ষণাগার থেকে নিষ্কাশন করতে অক্ষম / অনিচ্ছুক কারণ এটি ভুলভাবে দাবি করে যে একটি ফলোআপ ভলিউম সঠিক ধারাবাহিকতা অংশ নয়।
সহজেই 1'18
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.