ট্যার এবং জিজিপ এর ভিতরে এবং বাইরে পাইপিং করা


11

আমি কোনও কমান্ড থেকে জিজিপ, সিপিও বা টারের মতো কীভাবে পাইপ করব তার একটি হ্যান্ডেল পাওয়ার চেষ্টা করছি।

প্রশ্নে থাকা কমান্ডগুলি জেডএফএস সিস্টেমের অন্তর্গত। আমি উবুন্টু লিনাক্স 10.04.3 এ জেডএফএস চালাচ্ছি।

আমি যে কমান্ডগুলির সাথে কাজ করছি তা হ'ল;

To create a snapshot;
zfs snapshot media/mypictures@20070607

To copy the snapshot to a directory;
zfs send media/mypictures@20070607 > ~/backups/20070607

Then I can also pipe into gzip
zfs send media/mypictures@20070607 | gzip > ~/backups/20070607.gz

এই অংশগুলি আমি বুঝতে পারি।

তবে আমার প্রথম প্রশ্নটি হ'ল আমি কি ট্যারি + জিপ জিপে পাইপ করব?

এই?

zfs send media/mypictures@20070607 | tar czvf > ~/backups/20070607.tar.gz

এবং আমার অন্য প্রশ্নটি হ'ল আমি কীভাবে ডাটা ট্যারাবাল বা জিজিপ থেকে বের করব?

আমি ব্যবহার করতে zfs recieve media/mypictures@20070607 < ~/backups/20070607

যদি আমি ডাব ব্যবহার করতাম তবে এটি কি এই হবে?

zfs recieve media/mypictures@20070607 | tar xzvf < ~/backups/20070607.tar.gz

কোন ধারণা?

উত্তর:


10

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

$ echo aaa | tar cv > f.tar
tar: Cowardly refusing to create an empty archive
Try `tar --help' for more information.

যদি আপনার ডেটা একক লজিকাল আইটেম বা স্ট্রিম হয়, তবে টারের মতো কিছু ব্যবহার করার দরকার নেই যা পৃথক ফাইলের সেটকে একসাথে গ্রুপ করতে ব্যবহৃত হয়।

অন্যথায় আপনাকে প্রথমে কোনও ফাইলে ডেটা লিখতে হবে, ফাইলটি ট্যারি করতে হবে, তারপরে ফাইলটি মুছতে হবে।


সত্যি? আমি যদিও টার ছিল অন্য মাত্রার সংকোচনের। তাহলে কি এড়িয়ে চলুন শুধু জিজিপ?
ianc1215

3
হ্যাঁ, কেবল ব্যবহার করুনzfs send media/mypictures@20070607 | gzip -c > ~/backups/20070607.gz
রেডগ্রিটিব্রিক

2
তারা -fঅপশনটি নির্দিষ্ট না করে ফাইল নামের একটি তালিকা প্রত্যাশা করে না (টারটি f"-" ছাড়াই গ্রহণও করে )।
ড্র্যাভিকো

1
@ ড্রেভিকো: প্রশ্নের প্রসঙ্গটি একটি টার আর্কাইভ তৈরি করছে। আমি যে ফাইলগুলির তালিকা বলতে চাইছি তা হল লিখিত সংরক্ষণাগারে অন্তর্ভুক্ত করা ফাইলগুলির (এবং / অথবা ডিরেক্টরিগুলি) তালিকা। উদাহরণস্বরূপ: cd /etc; TAPE=/tmp/rgb.tar tar c hosts passwdযেখানে ফাইলগুলির তালিকা রয়েছেhosts passwd
রেডগ্রিটিব্রিক

2
@ রেডগ্রিটিব্রিক কিন্তু প্রশ্নের প্রসঙ্গটি হ'ল পাইপ থেকে ট্যারি করা, অর্থাত: ফাইলের কোনও তালিকা নেই। বলার অপেক্ষা রাখে এমন ফাইলগুলির একটি তালিকা প্রত্যাশা করে সত্য নয়। সমস্যাটি হ'ল ওপি সুনির্দিষ্ট করে যখন এটি একটি (একক) আউটপুট ফাইলের নাম প্রত্যাশা করে fএবং তিনি তা সরবরাহ করেন নি।
ড্রিভিকো

10

-fবিকল্প একটি ফাইল নির্দিষ্ট করে, আর আউটপুট stdout- এ যায়। সুতরাং, হয় পুনঃনির্দেশটি ড্রপ করুন:

zfs send media/mypictures@20070607 | tar czvf ~/backups/20070607.tar.gz

অথবা fবিকল্পটি ফেলে দিন :

zfs send media/mypictures@20070607 | tar czv > ~/backups/20070607.tar.gz

একইভাবে অপরিবর্তিত।


এটি কি আসলে কাজ করে? উভয় echo "hello" | tar czvf foo.tar.gzএবং echo "hello" | tar czv > foo.tar.gzআমার জন্য ব্যর্থ।
425nesp
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.