একটি ওয়াইল্ডকার্ড ফাইলের ধরণ সহ টার-সি


17

ডিরেক্টরি পরিবর্তন করতে এবং ওয়াইল্ডকার্ড ফাইলের ধরণটি ব্যবহার করতে কি আমি টার কমান্ডটি ব্যবহার করতে পারি?

এখানে আমি যা করার চেষ্টা করছি:

tar -cf example.tar -C /path/to/file *.xml

আমি ডিরেক্টরি (-সি) পরিবর্তন না করলে এটি কাজ করে, তবে আমি টার ফাইলটিতে নিখুঁত পাথগুলি এড়ানোর চেষ্টা করছি।

tar -cf example.tar /path/to/file/*.xml

আমি তৈরি অন্যান্য কয়েকটি প্রচেষ্টা এখানে রইল:

tar -cf example.tar -C /path/to/file *.xml
tar -cf example.tar -C /path/to/file/ *.xml
tar -cf example.tar -C /path/to/file/ ./*.xml
tar -cf example.tar -C /path/to/file "*.xml"

এবং এটি আমি পেয়েছি ত্রুটি:

tar: *.xml: Cannot stat: No such file or directory

আমি জানি যে এই কাজটি করার অন্যান্য উপায় রয়েছে (ফাইন্ড, এক্সার্গস ইত্যাদি ব্যবহার করে) তবে আমি কেবল টার কমান্ড দিয়ে এটি করার আশা করছিলাম।

কোন ধারনা?

উত্তর:


18

সমস্যাটি হ'ল, * .xML শেল দ্বারা ব্যাখ্যা করা হয়, টার দ্বারা নয়। সুতরাং যে xML ফাইলগুলি এটি সন্ধান করে (যদি থাকে) ডিরেক্টরিতে থাকে আপনি টার কমান্ডটি চালিয়েছিলেন।

আপনার পছন্দসই ফাইলগুলি নির্বাচন করতে এবং তারপরে তারগুলি সংযুক্ত করার জন্য আপনাকে একটি মাল্টি-স্টেজ অপারেশন (সম্ভবত পাইপযুক্ত) ব্যবহার করতে হবে।

সবচেয়ে সহজ উপায় হ'ল cdফাইলগুলি যে ডিরেক্টরিটিতে রয়েছে সেগুলিতে প্রবেশ করা:

$ (cd /path/to/file && tar -cf /path/to/example.tar *.xml)

কাজ করা উচিত.

বন্ধনীগুলি কমান্ডগুলি একসাথে গোষ্ঠীভূত করে, সুতরাং যখন তারা সমাপ্ত হয় আপনি এখনও আপনার মূল ডিরেক্টরিতে থাকবেন। && এর মানে হল tarশুধুমাত্র প্রাথমিকভাবে cdসফল হলে চালানো হবে ।


9

আপনার একটি প্রচেষ্টাতে:

tar -cf example.tar -C /path/to/file "*.xml"

* অক্ষরটি প্রকৃতপক্ষে তারে প্রেরণ করা হয়। তবে সমস্যাটি হ'ল টার কেবল আর্কাইভের সদস্যদের নামের সাথে মেলানো ওয়াইল্ডকার্ডকে সমর্থন করে। সুতরাং, আপনি যখন সংরক্ষণাগার থেকে সদস্যগুলি বের করার সময় বা তালিকা তৈরি করার সময় ওয়াইল্ডকার্ডগুলি ব্যবহার করতে পারেন, আপনি যখন সংরক্ষণাগার তৈরি করছেন তখন আপনি ওয়াইল্ডকার্ডগুলি ব্যবহার করতে পারবেন না।

এ জাতীয় পরিস্থিতিতে প্রায়শই আমি সন্ধান করি (যেমন আপনি ইতিমধ্যে উল্লেখ করেছেন)। আপনার যদি জিএনইউ খুঁজে পাওয়া যায়, তবে এতে প্রিন্টফ বিকল্পটি ব্যবহার করে কেবল আপেক্ষিক পাথ মুদ্রণের জন্য দুর্দান্ত বিকল্প রয়েছে:

find '/path/to/file' -maxdepth 1 -name '*.xml' -printf '%P\0' \
| tar --null -C '/path/to/file' --files-from=- -cf 'example.tar'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.