ফাইলগুলি যখন বিভিন্ন ডিরেক্টরিতে সংরক্ষণ করা হয় তখন পিতামহীন ডিরেক্টরি অন্তর্ভুক্ত না করে একটি সংরক্ষণাগার তৈরি করা


11

আমার কাছে ফাইল সিস্টেমে নিম্নলিখিত চারটি ফাইল রয়েছে:

/home/martin/cvs/ops/cisco/b/s1
/home/martin/cvs/ops/cisco/b/s2
/home/martin/cvs/ops/extreme/b/r3
/home/martin/cvs/ops/j/b/r5

এই ফাইলগুলিকে আমার একটি সংরক্ষণাগারে রাখা দরকার, তবে আমি ডিরেক্টরিগুলি যুক্ত করতে চাই না। আমি যে সেরাটি নিয়ে আসতে পারি তা হ'ল:

tar -C ~/cvs/ops/ -czvf archive.tgz cisco/b/s1 cisco/b/s2 extreme/b/r3 j/b/r5

এটি এখনও নিখুঁত নয়, কারণ সংরক্ষণাগারের প্রতিটি ফাইল দুটি ডিরেক্টরি গভীর। একটি ভাল উপায় আছে কি? নাকি আমি শুধু কপি করতে হবে s1, s2, r3এবং r5এক ডিরেক্টরির মধ্যে ফাইল এবং সঙ্গে সংরক্ষণাগার তৈরি tar -czvf archive.tgz s1 s2 r3 r5?

উত্তর:


17

আপনি -Cএকাধিকবার ব্যবহার করতে পারেন (একটি ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে সরানো):

tar czvf archive.tar.gz -C /home/martin/cvs/ops/cisco/b s1 s2 -C ../../extreme/b r3 -C ../../j/b r5

মনে রাখবেন যে প্রতিটি -Cবিকল্পের বর্তমান ডিরেক্টরিটির সাথে তুলনায় সেই সময়টি ব্যাখ্যা করা হয় (বা আপনি কেবল পরম পাথ ব্যবহার করতে পারেন)।


11

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

tar cf foo.tar -T list-of-files --transform 's:.*/::'

রূপান্তরটি এখনও ডিরেক্টরিগুলি রাখে তবে লেআউটটিকে পুরোপুরি ফ্ল্যাট করে। সুতরাং আপনার ফিল্টারিং ডিরেক্টরি কিছু উপায় প্রয়োজন, তাই ফাইলের একটি তালিকা প্রয়োজন।


8

আপনি এক এক করে সংরক্ষণাগারে ফাইল যুক্ত করতে পারেন:

tar cf /tmp/archive.tar -C /home/martin/cvs/ops/cisco/b s1
tar rf /tmp/archive.tar -C /home/martin/cvs/ops/cisco/b s2
tar rf /tmp/archive.tar -C /home/martin/cvs/ops/extreme/b r3
tar rf /tmp/archive.tar -C /home/martin/cvs/ops/j/b r5

আপনি এটিকে আরও সহজ করতে স্ক্রিপ্ট করতে পারেন: প্রতিটি পাথের tar rfজন্য, -Cপ্যারামিটারের মান হিসাবে বেস ডিরেক্টরি এবং বেস ফাইল নাম যোগ করার পথ ছাড়া চালান ।

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