`Find` আউটপুট থেকে একাধিক ফাইল কীভাবে খুলবেন?


10

আমি জানি আমি এরকম একরকম একাধিক ফাইল খুলতে পারি:

find -name *.foo -xargs <command> {} \;

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

আমি একই সাথে সমস্ত ফাইল খুলতে চাই। আমি কীভাবে এটি অর্জন করতে পারি?

উত্তর:


15

একসাথে একাধিক ফাইলে কাজ findকরতে এর +পরিবর্তে ব্যবহার করুন \;:

find . -name '*.foo' -exec gedit {} +

Zsh, অথবা যদি আপনি করা ব্যাশ সঙ্গে ≥4 সঙ্গে shopt -s globstarআপনার ~/.bashrc, আপনি ব্যবহার করতে পারেন **/সাবডিরেক্টরি মধ্যে recurse করুন:

gedit **/*.foo

Zsh অনেক হয়েছে উল্লিখিত glob কোয়ালিফায়ার যার বেশিরভাগ ব্যবহারসমূহ প্রতিস্থাপন করতে পারেন find


কেউ ম্যাক ওএস এক্স এ চালানোর পরামর্শ দিতে পারে?
andilabs

@ কান্দি নিজেই সমাধান করেছেন। তবে কেউ যদি উইন্ডোজ না করে কিছুটা সংক্ষিপ্ততর প্রস্তাব দেয় বা সাবলাইমেক্সটকে আলাদা ট্যাবগুলিতে খোলার জন্য জোর করে, তবে তা অনেকটা প্রশমিত হবে।
andilabs

@andi এটি সাব্লাইমেক্সট সংক্রান্ত একটি সমস্যা, আপনার এটি আলাদা থ্রেড হিসাবে জিজ্ঞাসা করা উচিত।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

যাইহোক আমি মনে করি এটি হুবহু বাশ ফর্ম্যাট সম্পর্কে, কারণ যদি আমি উদাহরণস্বরূপ চালনা করি তবে open -a SublimeText admin.py forms.pyএটি দুটি ট্যাব সহ একটি উইন্ডোতে খোলে।
andilabs

2

ম্যাক ওএস এক্স ব্যাশে আপনি এমন কিছু চালাতে পারেন:

for file in $(find . -name "*.py"); do open -a SublimeText $file; done. 

একটি অপূর্ণতা হ'ল এটি নতুন ট্যাব ব্যবহারের পরিবর্তে সাব্লাইমের নতুন উইন্ডোতে খোলে।


0

আমি মনে করি যে এই ক্ষেত্রে আপনি ব্যবহার করতে পারে

find ./ -name \*.foo | xargs gedit

1
ফাইলের নামটিতে বিশেষ অক্ষর (সাদা স্থান বা \'") থাকলে এটি কাজ করবে না , কারণ xargsএর ইনপুটটি এমনভাবে উদ্ধৃত করা দরকার যা findউত্পাদন করে না। হয় ব্যবহার করুন find … -print0 | xargs -0 …, বা সহজ ব্যবহার করুন find … -exec … {} +
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

এছাড়াও, যদিও এটি এই ক্ষেত্রে প্রযোজ্য নয়, -print0 | xargs -0স্ট্যান্ডিনের গাবলড হয়ে যাওয়ার সমস্যা রয়েছে এবং এটি টার্মিনালের সাথে আর সংযুক্ত নেই। আপনি যদি কোনও পাঠ্য-মোড সম্পাদক ব্যবহার করার চেষ্টা করছেন তবে একটি সমস্যা।
ডার্বোবার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.