লিনাক্সে ফাইলগুলির একটি তালিকা জিপ করবেন কীভাবে


18

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

আমি করেছিলাম

grep abc file-* > out.txt 

প্রতিটি ফাইল "abc" এর সমস্ত দৃষ্টান্ত সহ একটি ফাইল তৈরি করতে to আমার নিজের ফাইল দরকার need কেবলমাত্র সেই ফাইলগুলিকে জিপ করতে আমি বাশকে কীভাবে বলতে পারি?


ওয়াইল্ডকার্ড কাজ করে না? কেন? যদি আমি জিজ্ঞাসা করতে পারি ...
ঝেররান

@ ঝেররান আমি ডিরেক্টরিতে সমস্ত ফাইল জিপ করতে চাই না, কেবলমাত্র একটি নির্দিষ্ট প্রশ্নের সাথে মেলে। আমি প্রতিটি ফাইল "abc" এর grep abc file-* > out.txtসমস্ত দৃষ্টান্ত দিয়ে একটি ফাইল তৈরি করেছি । আমার নিজের ফাইল দরকার need
জন ম্যাঙ্গুয়াল

@ ঝেররান এর অর্থ কী zip ZipFile.zip file-*, এটি করার সুস্পষ্ট উপায় obvious আপনি যদি কোনও জটিল findবা বিভিন্ন অনুসন্ধান থেকে ফাইল তালিকাগুলির সংক্ষেপণ ব্যবহার করতেন তবেই আপনার মধ্যবর্তী ফাইলের প্রয়োজন হবে ।
এএফএইচ

উত্তর:


33

খুব সহজ:

zip archive -@ < out.txt

এটি হল, যদি আপনার out.txtফাইলটিতে প্রতি লাইনে একটি ফাইল নাম থাকে contains এটি কল out.txtকরা একটি সংরক্ষণাগার থেকে সমস্ত ফাইল যুক্ত করবে archive.zip

-@বিকল্প তোলে zipstdin থেকে পড়া।

আপনি যদি একটি অস্থায়ী out.txtফাইল তৈরি করা এড়াতে চান , আপনি grepফাইলের নামগুলি মুদ্রণের জন্যও এর ক্ষমতা ব্যবহার করতে পারেন । -rপুনরাবৃত্ত অনুসন্ধান সক্রিয় করে (আপনার ক্ষেত্রে এটি প্রয়োজন নাও হতে পারে) সক্ষম করে এবং -lকেবল ফাইলের নাম মুদ্রণ করে:

grep -rl "abc" file-* | zip archive -@

সুন্দরভাবে কাজ করে, আমার তালিকার একটি ফাইল বাদে যেখানে ফাইলের নামের জায়গাগুলি রয়েছে। আমি উভয়কেই `with দিয়ে পালাতে এবং তাদের থেকে পালাতে না পেরে একবারে উদ্ধৃতিতে এবং একবার ফাইলের নামের (একটি লাইন - একটি ফাইলের নাম) কাছাকাছি ছাড়াই চেষ্টা করেছি। এখনও কিছু হয়নি।
টমাস ডাব্লু।

2
আমি এটিকে `\` স্পেস স্পেস এবং ফাইল এবং নীচে কোনও উদ্ধৃতি দিয়ে কাজ করেছিলাম:cat out.txt | while read line ; do xargs zip archive.zip $line ; done
টমাস ডব্লিউ

যদি আপনি অনুরূপ নামের সাথে ফাইলগুলি জিপ করতে চান তবে চেষ্টা করতে পারেনzip archive.zip $(ls common_name*)
chepe263

@ chepe263 ফাইলগুলিতে যদি তাদের জায়গাগুলির ফাঁক থাকে তবে এটি ভেঙে যায়। এটি সাধারণত এলএস আউটপুট পার্স করতে নিরুৎসাহিত হয়।
slhck

ম্যাকের অন্য যে কেউ এখানে অনুসন্ধান ইঞ্জিন সূচকের সৌজন্যে ক্ষতবিক্ষত করেছে, -@বিকল্পটির বাক্য গঠন 10.16 হিসাবে ঠিক আছে, যদিও ম্যান পেজে এখনও ভাষা অন্তর্ভুক্ত রয়েছেnot on MacOS
এডান মাইলস

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