টার্মিনালের মাধ্যমে ম্যাক সন্ধান করছেন?


22

টার্মিনাল ব্যবহার করে আপনার ম্যাক অনুসন্ধান করার জন্য কোনও আদেশ আছে? আমি ইউএসইএন গ্রেপ অনুসন্ধান করার চেষ্টা করেছি তবে এটি কিছুটা প্রতিক্রিয়াহীন বলে মনে হচ্ছে এবং কিছুই আসে না।

উদাহরণস্বরূপ, আমি "গ্রেপ ফাইলগুলি" (একটি ফোল্ডারের নাম) টাইপ করব এবং এটি কেবল একটি ফাঁকা লাইন প্রিন্ট করে এবং কিছুই ঘটে না।



আমি সমস্ত ধরণের ফাইল অনুসন্ধান করতে আগ্রহী; অগত্যা পাঠ্য ফাইলগুলি বাদ দেওয়া নয় কেবল পাঠ্য ফাইলই নয়।
জেএফডাব্লু

উত্তর:


21

mdfindস্পটলাইটের সাহায্যে অনুসন্ধান চালানোর জন্য আপনি আদেশটিও ব্যবহার করতে পারেন । আরও তথ্য এখানে

mdfind -name searchtermনামের সাথে ফাইলগুলি পুনরুদ্ধার করতে ব্যবহার করুন searchtermmdfind searchtermফাইলের নাম এবং সামগ্রীতে একটি অনুসন্ধান সম্পাদন করতে ব্যবহার করুন ।


25

আপনি যদি কেবল একটি নির্দিষ্ট নামের সাথে ফাইলগুলি সন্ধান করতে চান তবে ব্যবহার করুন find

ম্যান পৃষ্ঠাটি এখানে বা man findটার্মিনাল প্রম্পটে টাইপ করে খুঁজে পাওয়া যাবে ।

মূলত, অনুসন্ধানটি আপনার নির্দিষ্ট করা ফাইল মিটিংয়ের মানদণ্ডের জন্য পুনরাবৃত্তভাবে অনুসন্ধান করবে। সবচেয়ে সহজ উদাহরণ:

find . -name file_name -print

এটি বর্তমান ডিরেক্টরিতে "ফাইল_নাম" নামের একটি ফাইল অনুসন্ধান করবে এবং নীচে অনুসন্ধান করবে এবং সেই নামটি দিয়ে ফাইলগুলি মুদ্রণ করবে।

find ~ -name ".DS_Store" -delete

এটি সমস্ত .DS_Store ফাইলগুলি সন্ধান করবে এবং সেগুলি মুছবে।

আপনি নাম, রেজেক্স, তারিখ অনুসারে অনুসন্ধান করতে পারেন। আপনি -execপ্রিকিকেট দিয়ে কোনও ইউনিক্স পদ্ধতিতে ফাইলটিতে অভিনয় করতে পারেন ।

আপনি আরও জটিল ক্রিয়াকলাপগুলির পাইপলাইন হিসাবে শুরু হিসাবে ব্যবহার করতে পারেন। উদাহরণ:

find . -type f -print | egrep -i '\.m4a$|\.mp3$'

এক্সটেনশন .m4a বা .mp3 সহ সমস্ত ফাইল সন্ধান করবে

find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l

আপনাকে সেই ফাইলগুলির একটি গণনা দেবে।


যদি -printএকমাত্র শিকারী হয় তবে এটি বাদ দেওয়া যেতে পারে; এছাড়াও, সহজ গ্লোববিং উপলব্ধ আছে। সুতরাং .txtডিরেক্টরিতে সমস্ত ফাইল সন্ধানের fooকাজটি সম্পন্ন করা হতfind foo -name \\*.txt
নরম্যান গ্রে

@ যোশি: এটি একেবারেই মিথ্যা। টাইপিং find .cwd থেকে পুনরাবৃত্ত হয়। find .আপনার মূল ডিরেক্টরিতে টাইপ করার চেষ্টা করুন !
drewk

আমার খারাপ শপথ করতে পারে এটি পুনরাবৃত্তিযোগ্য ছিল না তবে সার্ভারটি চুকিয়ে ফেলেছে
সংগ্রাম- nuala

5

আপনি যদি একটি পুরো ফোল্ডারটি অনুসন্ধান করতে চান তবে গ্রেপ -r ব্যবহার করুন:

grep -r pattern folder/to/search

সন্ধানের সাথে, আপনি xargs ব্যবহার করতে পারেন:

find folder/to/search -name '*.txt' | xargs grep pattern

বা আপনি একবারে দুটি ফাইল অনুসন্ধান করেছেন এবং তাই ফাইলের নাম নির্দিষ্ট করে দিয়েছেন তা নিশ্চিত করতে:

find folder/to/search -name '*.txt' | xargs grep -n2 pattern

2

grepএকটি প্যাটার্ন এবং একটি ফাইলস্পেক উভয়ই প্রত্যাশা করে। যদি কোনওটি অনুপস্থিত থাকে তবে এটি নিদর্শন হিসাবে যা পাস তা ব্যবহার করে এবং স্ট্যান্ডার্ড ইনপুটটির মাধ্যমে অনুসন্ধানের জন্য ডেটার জন্য অপেক্ষা করে।

আপনি যদি আরও জটিল ফাইলস্পেক ব্যবহার করতে চান তবে ব্যবহার করুন find

find ~ -name '*.txt' -exec grep -q 'secret' {} \; -print

আমি মূলত এটি চাই যে আমি কমান্ডের মধ্যে প্রবেশ করানো নাম রয়েছে এমন ফাইলগুলির সন্ধান করা।
জেএফডাব্লু

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