tar: কীভাবে নির্ধারিত শীর্ষস্থানীয় ডিরেক্টরিগুলি w / o 'সিডি' পিতামাতার সাথে ডায়ারিং করে একটি টর ফাইল তৈরি করবেন


23

বলুন আমার কাছে ফাইলগুলির একটি ডিরেক্টরি আছে

/home/user1/dir1

এবং আমি শীর্ষস্থানীয় ডিরেক্টরি হিসাবে কেবল "dir1" দিয়ে একটি টার তৈরি করতে চাই:

/dir1/file1
/dir1/file2

আমি জানি আমি প্রথম ডিরেক্টরিতে সিডি করতে পারি

cd /home/user1/
tar czvf dir1.tar.gz dir1

স্ক্রিপ্টগুলি লেখার সময় ডিরেক্টরি থেকে ডিরেক্টরিতে ঝাঁপ দেওয়া সর্বদা অনুকূল নয়। আমি ভাবছি বর্তমান ডিরেক্টরি পরিবর্তন না করে পরম পাথ দিয়ে এটি করার কোনও উপায় আছে?

আমি জানি আমি সর্বদা ভিতরে থাকা এবং ব্যবহারের জন্য নিখুঁত পাথগুলি সহ একটি টার ফাইল তৈরি করতে পারি

--strip-components 

যখন এক্সট্রাক্ট করা হয় তবে কখনও কখনও অতিরিক্ত পাথের নামগুলি অতিরিক্ত ব্যক্তিগত তথ্য যা আপনি আপনার টার ফাইলগুলি দিয়ে বিতরণ করতে চান না।

ধন্যবাদ!

উত্তর:


24

tar -C ডিরেক্টরি পরিবর্তন করে

tar -C /home/user1/ -cvzf dir1.tar.gz dir1

বিটিডাব্লু, ডিরেক্টরি পরিবর্তন করার ট্র্যাক রাখার জন্য সহজ ... পুশড এবং পপড ব্যবহার করুন।

pushd .
cd /home/user1
tar cvfz dir1.tar.gz
popd

1
ধন্যবাদ। আমি জানতাম না যে অন্যান্য বিকল্পগুলির আগে "-C" বিকল্পটি ব্যবহার করতে হবে ... আমি "টার-সিভিজেফ dir1.tar.gz dir1 -C / হোম / ইউজার 1 /" চেষ্টা করেছি তবে এটি কার্যকর হয়নি।
ইয়ান

1
কাজ করে না: টার: দির: স্ট্যাট করতে পারবেন না: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই (ধরে নিই যে ডিরি 1 / হোম / ইউজার 1 / এর অধীনে রয়েছে)
ট্রিবিউলয়েড

21

Gnu টার সাহায্যে আপনি আসলটির চেয়ে আলাদা বেস ডিরেক্টরি সহ একটি সংরক্ষণাগার তৈরি করতে পারেন:

tar -c --transform 's,^\.,mybasedir,' .

কেবলমাত্র প্রয়োজনের সাথে সেড এক্সপ্রেশনটি খাপ খাইয়ে নিন।


5

ঠিক আছে, আমি এটিও খুঁজে পেয়েছি

tar -czvf file1.tar.gz /home/user1/dir1/../dir1

আমি যেভাবে চেয়েছিলাম সেভাবে কাজ করেছে।


যদিও "*" এর মতো ওয়াইল্ডকার্ডগুলি কাজ করে না
কার্টিস ইয়ালাপ

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