আপনি যে ডিরেক্টরিটি প্যাক করছেন তার মধ্যে টার ফাইলটি তৈরি করবেন না:
tar -czf /tmp/workspace.tar.gz .
কৌতুকটি করে, ব্যতীত এটি যখন আপনি আনপ্যাক করেন তখন সমস্ত বর্তমান ডিরেক্টরিতে ফাইলগুলি বের করে দেয়। করণীয় ভাল:
cd ..
tar -czf workspace.tar.gz workspace
অথবা, আপনি যে ডিরেক্টরিটির মধ্যে ছিলেন তার নামটি যদি না জানেন:
base=$(basename $PWD)
cd ..
tar -czf $base.tar.gz $base
(এটি ধরে নেওয়া হয় যে আপনি কোথায় আছেন সিমলিংকগুলি অনুসরণ করেন নি এবং শেলটি একটি সিমিলিংকের মাধ্যমে পিছন দিকে ঝাঁপিয়ে পড়ে দ্বিতীয় অনুমান করার চেষ্টা করে না - bash
এই ক্ষেত্রে বিশ্বাসযোগ্য নয় you যদি আপনাকে এই বিষয়ে চিন্তা করতে হয় তবে, cd -P ..
একটি শারীরিক পরিবর্তন ডিরেক্টরি করতে ব্যবহার করুন । মূর্খ যে আমার দৃষ্টিতে এটি ডিফল্ট আচরণ নয় - বিভ্রান্তিকর, কমপক্ষে তাদের জন্য যাদের cd ..
কখনও বিকল্প অর্থ ছিল না।)
আলোচনার একটি মন্তব্য বলে:
আমার [...] শীর্ষ ডিরেক্টরিটি বাদ দিতে হবে এবং আমার [...] টার ডিরেক্টরিটি বেস ডিরেক্টরিতে রাখতে হবে।
মন্তব্যের প্রথম অংশটি তেমন কোনও অর্থবোধ করে না - যদি টার ফাইলটিতে বর্তমান ডিরেক্টরি থাকে তবে আপনি যখন সংরক্ষণাগার থেকে ফাইলটি বের করেন তখন তা তৈরি হবে না কারণ সংজ্ঞা অনুসারে, বর্তমান ডিরেক্টরিটি ইতিমধ্যে বিদ্যমান (খুব অদ্ভুত পরিস্থিতিতে বাদে) )।
মন্তব্যের দ্বিতীয় অংশটি দুটি পদ্ধতির একটির সাথে মোকাবিলা করা যেতে পারে:
- হয়: ফাইল অন্য কোথাও তৈরি করুন -
/tmp
এটিই একটি সম্ভাব্য অবস্থান - এবং এটি সম্পূর্ণ হওয়ার পরে এটি আবার আসল অবস্থানে ফিরিয়ে আনুন।
- বা: আপনি যদি জিএনইউ টার ব্যবহার করছেন তবে
--exclude=workspace.tar.gz
বিকল্পটি ব্যবহার করুন । স্ট্রিংয়ের পরে =
একটি প্যাটার্ন - উদাহরণটি সহজতম প্যাটার্ন - একটি সঠিক মিল। আপনি --exclude=./workspace.tar.gz
সুপারিশের বিপরীতে বর্তমান ডিরেক্টরিতে কাজ করছেন কিনা তা আপনাকে উল্লেখ করতে হবে; আপনি --exclude=workspace/workspace.tar.gz
যদি পরামর্শ মতো একটি স্তর নিয়ে কাজ করছেন তবে আপনার নির্দিষ্টকরণের প্রয়োজন হতে পারে । বাদ দেওয়ার জন্য যদি আপনার একাধিক টার ফাইল থাকে তবে ' *
' হিসাবে ব্যবহার করুন --exclude=./*.gz
।