একটি tar.gz সংরক্ষণাগারটির মধ্যে একটি ফাইল সন্ধান করুন


12

findকমান্ডটি ব্যবহার করা কি সম্ভব যাতে এটি ওয়্যার্ডকার্ডস ব্যবহার করে একটি টার.gz আর্কাইভের মধ্যে থাকা ফাইলগুলি অনুসন্ধান করে?

মত

find archive.tar.gz --name *foo*

উত্তর:


17

কীভাবে ঠিক:

$ tar tf archive.tar.gz | grep foo

যে শুধু সব ফাইল তালিকাবদ্ধ না?
ক্ল্যাম্প করুন

@ ক্ল্যাম্প হ্যাঁ, আপনি যদি প্রতিটি ফাইলে কিছু করতে চান তবে কেবল সেই আউটপুটটিকে অন্য কমান্ডে পাইপ করুন।

ধন্যবাদ! দুঃখিত তবে আমি ইউনিক্সের একজন নবাগত। আমি চেষ্টা করেছি: tar tf graphics.tar.gz | find . --name *space*তবে এটি বলেছেunkown predicate --name
ক্ল্যাম্প করুন

@ ক্ল্যাম্প findআর্গুমেন্টগুলি কেবল একটি ড্যাশ নেয়, তবে এটি স্ট্ডিনে থাকা ফাইলগুলির একটি তালিকা, আপনি grepপরিবর্তে হিচলের উদাহরণ কোডের মতো ব্যবহার করতে চান । চেষ্টা করুনtar tf graphics.tar.gz | grep 'space'
কেভিন

1
grep *foo*কোনও বৈধ নিয়মিত প্রকাশ নয়। gregগ্লোবগুলি বোঝে না, এটি নিয়মিত প্রকাশগুলি বোঝে। grep fooপরিবর্তে চেষ্টা করুন।
অ্যালেক্সোস

3

ডিরেক্টরি হিসাবে সংরক্ষণাগারটি মাউন্ট করুন। আপনি এটি এভিএফএস ফাইল সিস্টেমের সাহায্যে করতে পারেন, যা আপনাকে এমন কোনও সংরক্ষণাগারকে ডিরেক্টরি হিসাবে অ্যাক্সেস করার অনুমতি দেয় যার নাম অনুগমন করে#

mountavfs
cd ~/.avfs$PWD
find archive.tar.gz\# -name '*foo*'


@vanabel একটি জিজিপ ফাইলটিতে অন্যান্য ফাইল নেই। এটি কেবল একটি ফাইল, সংকুচিত। সুতরাং অনুসন্ধানের জন্য কোনও "ভিতরে" নেই
গিলস 'অশুভ হওয়া বন্ধ করুন'

2

আমি মনে করি এটি কোনও পাইপ এবং গ্রেপ দিয়ে কাজ করে।

এটার মত: tar tvf archive.tar.gz "foo"

এইভাবে, গ্লোবগুলিও কাজ করবে।

tar tvf archive.tar.gz "*.foo"

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