তাদের অনুলিপি না করেই অন্য ডিরেক্টরি থেকে টার ফাইলগুলি


10

এখানের বিশেষজ্ঞদের পক্ষে এটি খুব সহজ হওয়া উচিত।

আমার কাছে একটি লিনাক্স অ্যাকাউন্ট রয়েছে যার মধ্যে কেবল 6 জিবি ব্যবহারকারীর ডিস্ক কোটা রয়েছে। সংক্ষিপ্ত /opt1GB যখন আসে তখন প্রায় 3GB ডেটা সহ কিছু ডেটা-ফোল্ডার থাকে । এর মধ্যে কিছু প্রতীকী লিঙ্ক রয়েছে data-folder। সাধারণত কোনও কাজের ব্যাকআপ নেওয়ার জন্য আমি নিম্নলিখিতগুলি করতাম।

cp -rvfL /opt/data-folder ~/
cd ~/
tar -zcvf data-folder.tar.gz data-folder
rm -rvf data-folder

এখন আমি ইতিমধ্যে আমার ইউজার ডিস্ক কোটায় 2.5 জিবি গ্রাস করেছি, আমার বাড়িতে ফাইলগুলি অনুলিপি করার জন্য কেবল পর্যাপ্ত জায়গা রয়েছে তবে tarএটি আবার নেই।

একটি একক কমান্ডের সাহায্যে ফোল্ডারটি কপি করার এবং অনুলিপি করার কোনও উপায় আছে, পাইপ ব্যবহার করে বলুন।

PS আমি টার্গেট করতে পারছি না /optকারণ আমার কাছে কেবলমাত্র অ্যাক্সেস পড়ার সুযোগ রয়েছে /opt


আপনি অবশ্যই টর্প / অপ্ট করতে পারেন, আপনি সেখানে লিখতে পারবেন না, এগুলিই ঠিক। 'এফ' পতাকা ট্যারে (3) বলছে ফলটি সেই ফাইলে জমা দেওয়ার জন্য, যা খুব ভালভাবে অন্য কোথাও হতে পারে। অর্থাৎ cd /opt; tar zcf $HOME/junk.tar.gz junk,।
ভোনব্র্যান্ড

উত্তর:


5

আপনি যে ফাইলগুলি ট্যারে থাকতে চান সে জায়গা থেকে দূরে একটি টার ফাইল তৈরি করতে চান?

এটি করার অনেকগুলি উপায় রয়েছে।

যদি এটি স্থানীয়ভাবে তৈরি করা হয় (= একই মেশিনে):

tar czvf /path/to/destination/newfile.tar.gz  ./SOURCEDIR_OR_FILES

এই কমান্ডের শেষে আপনি সংযোজনকারী ফাইল বা ডিরেক্টরি যুক্ত করতে পারেন।

যদি এটি দূরবর্তীভাবে তৈরি করা হয় (যেমন, আপনি ডেটাযুক্ত হওয়ার একটি থেকে দূরবর্তী হোস্টে টার ফাইলটি তৈরি করতে চান):

tar czvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cat > newfile.tar.gz'

পরবর্তী সংস্করণটি খুব বহুমুখী। উদাহরণস্বরূপ আপনি একই কৌশলটি ব্যবহার করে একটি ডিরেক্টরি + সাবডিয়ারগুলি "নকল" করতে পারেন:

একটি ডিরেক্টরি + অন্য স্থানীয় ডিরেক্টরিতে সাবডিয়ারদের নকল করুন:

tar cf - ./SOURCEDIR_OR_FILES | ( cd LOCAL_DEST_DIR && tar xvf - )

অন্য একটি দূরবর্তী ডিরেক্টরিতে ডিরেক্টরি + সাবডিয়ারদের নকল করুন:

tar cvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cd REMOTE_DEST_DIR && tar xf - '

'ভি' ড্রপ করুন যদি ফাইলগুলি ট্যার-এড (বা অবারিত) না করে দেখানোর প্রয়োজন হয় না: এটি তত দ্রুত গতিতে চলে যাবে, তবে ত্রুটি না থাকলে বেশি কিছু বলবে না।

আমি উত্সটির জন্য "" / / ... "ব্যবহার করে তারিকে এটিকে সম্পর্কিত পথ হিসাবে সঞ্চয় করতে বাধ্য করি। কিছু ক্ষেত্রে আপনি অতিরিক্ত পথ সম্পর্কিত তথ্য যুক্ত করতে চান:

উদাহরণস্বরূপ, ক্রন্টব ফাইলগুলি ট্যারি করার জন্য / ইত্যাদি মধ্যে একটি অন্তর্ভুক্ত, আপনি এটি করতে পারেন:

cd / ; tar czf all_crons.tgz  ./etc/*cron*  ./var/spool/cron

আমি উদ্দেশ্যে সম্পর্কিত আপেক্ষিক পথটি ব্যবহার করি: টার এর কিছু পুরানো সংস্করণ বিপজ্জনক হতে পারে এবং তাদের মূল গ্লোবাল পাথের সাথে ফাইলগুলি বের করা যেতে পারে যার অর্থ আপনি করতে পারেন: cd /safedir ; tar xvf sometarএবং বিশ্বব্যাপী নামের ফাইলগুলি তাদের মূল পথে ফাইলের ওভাররাইট করতে পারে যা / সাফিডিরের বাহ্যিক এবং এটি নীচে না! খুব বিপজ্জনক, এবং এখনও সম্ভব হিসাবে সেখানে পুরানো প্রোডাকশন সার্ভার রয়েছে। আপনি আরও সাম্প্রতিক টার ব্যবহার করলেও সারাক্ষণ আপেক্ষিক পাথ ব্যবহার করতে ব্যবহার করা ভাল।


আর কোনও টির মধ্যে পার্থক্য সম্পর্কে নয়: কারও কারও -cvfপরিবর্তে আপনার প্রয়োজন পড়তে পারে cvfঅন্যরা -শৈলীটি স্বীকৃতি দেবে না । এবং এর zঅর্থ "সংকোচনের সাথে সংকোচনের" ছিল, তবে 'সাম্প্রতিক' টার উপর এর অর্থ "জিজিপ সহ কমপ্রেস"। তুমি জানো করতে পারে কম্প্রেশন সঙ্গে একটি ফাইল-এ ব্যবহার করা হয়: file zefile। এবং তারপরে এটি অনুসারে এর নতুন নামকরণ করুন (যদি আপনার টার ব্যবহার compressহয় তবে এটির নামকরণ আরও ভাল করা উচিত। ডার.জেড .tar.gz নয়)
অলিভিয়ার ডুলাক

0

-hটার অপশনটি ব্যবহার করুন । ম্যান পৃষ্ঠা থেকে:

-h, --dereference
don't archive symlinks; archive the files they point to

যাতে আপনি ব্যবহার করতে পারেন tar -zcvfh data-folder.tar.gz /opt/data-folder


ওহ, আমার এটি উল্লেখ করা উচিত ছিল, আমি ইতিমধ্যে tar -zcvfh ~ / ডেটা-ফোল্ডার.আরটিজেড / অপ্ট / ডেটা-ফোল্ডারটি চেষ্টা করেছি। আমি একরকম বিজ্ঞপ্তি সংক্রান্ত সংরক্ষণাগার সমস্যার মধ্যে পড়ছি। আমি কিছু ফাইল অনুলিপি করতে থাকি এবং শেষ হয় না।
কামথ

দেখে মনে হচ্ছে ডেটার একটি সাব ফোল্ডারে একটি বিজ্ঞপ্তি প্রতীকী লিঙ্ক রয়েছে।
কামাত

2
@ আউজকামথ, এটি জিএনইউ টারে একটি বাগ। bsdtarপরিবর্তে আপনি চেষ্টা করতে পারেন , বা pax( cd /opt && pax -Lw data-folder | gzip > ~/data-folder.tar.gz) যা লুপগুলি সনাক্ত করতে পারে
স্টাফেন চ্যাজেলাস

1
@ অউজকামথ আপনি একই সাথে টর করতে পারেন এবং আপনার হোম ডিরেক্টরি থেকে ফাইলগুলি tar -rf <tarfilename> <filename>বিদ্যমান ট্যারে ফাইল যুক্ত করতে ব্যবহার করতে পারেন।
harish.venkat

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