সিমলিংকগুলি বাদে tar
ভিতরে সমস্ত ফাইলের একটি তালিকা সরবরাহ করার জন্য আপনি এটি করতে পারেন protTests
:
find protTests -maxdepth 1 -mindepth 1 -not -type l -print0 |
tar --null --files-from - -cvf protTests.tar
যাইহোক, আপনার বিদ্যমান কমান্ড:
tar -cvf protTests.tar protTests/*
এতে সমস্ত ফাইল সংরক্ষণাগারভুক্ত হবে না protTests
, এটি কেবল তাদের সংরক্ষণাগারভুক্ত করবে যাদের নাম শুরু হয় না .
(যেগুলি গোপন নেই)। *
উল্লিখিত glob অপারেটর ফাইল যাদের নাম দিয়ে শুরু অগ্রাহ্য .
নকশা দ্বারা। কমান্ডটিতেও সমস্যা রয়েছে যে যদি protTests
প্রচুর ফাইল থাকে (বহু হাজারেরও বেশি), তবে protTests/*
কমান্ড লাইনে ফিট করার জন্য অনেকগুলি আর্গুমেন্টে প্রসারিত করতে পারে।
এর মতো সরল কমান্ডের মধ্যে এই সমস্যাগুলির মধ্যে একটিও নেই:
tar -cvf protTests.tar protTests
--files-from
টারের কোনও বিকল্প নেই , এটি গার্টার থেকে একটি বিকল্প, সুতরাং আপনারা এই জাতীয় পরামর্শ দিন, আরও ভালভাবে উল্লেখ করুন যে এটি জিটার নির্দিষ্ট। অনুসন্ধানের কোনও প্রাথমিক নেই-not
, এটি অন্য একটি বহনযোগ্য জিএনইউজম। সাধারণভাবে, পৃথক ফাইন্ড কল ব্যবহার করা খারাপ ধারণা। এটি ফাইলের নামটিতে মজার চরিত্রগুলির সাথে সমস্যা দেখা দিতে পারে এবং এটি অবশ্যই একটি কম কর্মক্ষমতা দেয় কারণ ফাইল সিস্টেমটি স্ক্যান করার জন্য অনুসন্ধান এবং ট্যারি উভয়ই প্রয়োজন। এই সমস্যাগুলি স্টারের মতো প্রোগ্রামগুলিতে প্রযোজ্য না যা লাইবফাইন্ড ব্যবহার করে এবং এইভাবে সন্ধানের কোডটি অন্তর্ভুক্ত করে।