আমি কীভাবে লুকানো ফাইলগুলি গ্রেপ করতে পারি?


101

আমি একটি গিট সংগ্রহস্থলের মাধ্যমে অনুসন্ধান করছি এবং .gitফোল্ডারটি অন্তর্ভুক্ত করতে চাই ।

grep আমি চালাতে গেলে এই ফোল্ডারটি অন্তর্ভুক্ত করে না

grep -r search *

এই ফোল্ডারটি অন্তর্ভুক্ত করার জন্য গ্রেপ কমান্ড কী হবে?

উত্তর:


138

আপনি যা করছেন তার আরও ভাল বিকল্প হিসাবে দয়া করে এই পোস্টের শেষে সমাধানটি দেখুন।

আপনি স্পষ্টভাবে লুকানো ফাইলগুলি অন্তর্ভুক্ত করতে পারেন (ডিরেক্টরিটি একটি ফাইলও হয়)।

grep -r search * .*

*লুকানো বেশী ছাড়া সব ফাইল ম্যাচ হবে এবং .*শুধুমাত্র লুকানো ফাইল ম্যাচ হবে। তবে এটি কোনও ব্যর্থ হবে যদি কোনও প্রদত্ত ডিরেক্টরিতে কোনও গোপনীয় ফাইল বা কোনও লুকানো ফাইল না থাকে। আপনি অবশ্যই স্পষ্টভাবে .gitপরিবর্তে যোগ করতে পারেন .*

তবে, আপনি যদি কোনও প্রদত্ত ডিরেক্টরিটি সন্ধান করতে চান তবে এটি এটি করুন:

grep -r search .

.বর্তমান পথ, যা উভয় অ লুকানো এবং গোপন ফাইল অন্তর্ভুক্ত করা হবে ম্যাচ হবে।


4
প্রথম পদ্ধতির (গ্রেপ -আর অনুসন্ধান *। *) আমার পক্ষে কাজ করেছিল। দ্বিতীয় পদ্ধতির (গ্রেপ -আর অনুসন্ধান।) স্ট্রিংটি খুঁজে পেল না। "-R" বাদ দিয়ে এবং কেবলমাত্র শীর্ষ-স্তরের ডিরেক্টরি অনুসন্ধান করার সময় আমি অনুরূপ ফলাফল পেয়েছি। আমি জিএনইউ গ্রেপ ২.6.৩ ব্যবহার করছি।
অ্যালান

@ অ্যালান: অদ্ভুত আমি এটি নিয়মিত ব্যবহার করি। আপনি কি একই ডিরেক্টরিতে চেষ্টা করে দেখেছেন?
বিটমাস্ক

27
ব্যবহারের ক্ষেত্রে .*..
পিতামহুল

4
এই সমাধান সম্পর্কে সাধারণীকরণ করা কি নিরাপদ কারণ শ্যাওলের মধ্যে বাহাভিয়ার আলাদা হতে পারে?
অ্যাস্টলেট্রন

6
প্রথম সংস্করণে আপনার যুক্ত করা উচিত --excule-dir = ..
পিতামাত্রে

13

আমি কেবল এই সমস্যায় পড়েছি, এবং @ বিটমাস্কের উত্তরের উপর ভিত্তি করে @sehe দ্বারা চিহ্নিত সমস্যাটি এড়াতে এখানে আমার সাধারণ পরিবর্তনটি দেওয়া হয়েছে:

grep -r search_string * .[^.]*

আমি এটি ব্যবহার করে কোনও ফল পাই না: sudo grep -r ANDROID_HOME * .[^.]*আমি এখানে কী ভুল করছি?
মেসেরবিল

@ মেসারবিল আপনি কোথায় অনুসন্ধান চালাচ্ছেন?
insaner

3

সম্ভবত আপনি সম্পূর্ণ সমাধানের জন্য "ফাইন্ড" কমান্ডের সাথে "গ্রেপ" একত্রিত করতে পছন্দ করবেন:

find . -exec grep -Hn search {} \;

এই কমান্ডটি "অনুসন্ধান" স্ট্রিংয়ের জন্য লুকানো ফাইল বা ডিরেক্টরিগুলির মধ্যে অনুসন্ধান করবে এবং এই আউটপুট ফর্ম্যাটটির সাথে কোনও ফাইলকে কাকতালীয়ভাবে তালিকাবদ্ধ করবে:

ফাইলের পথ: লাইন নম্বর: কাকতালীয় সাথে লাইন

./foo/bar:42:search line
./foo/.bar:42:search line
./.foo/bar:42:search line
./.foo/.bar:42:search line

2

আপনি এই ডিরেক্টরিটি ব্যবহার করতে চাইতে পারেন, ধরে নিচ্ছেন আপনি বর্তমান ডিরেক্টরিটি অনুসন্ধান করছেন (অন্যথায় প্রতিস্থাপন করুন। পছন্দসই ডিরেক্টরিটি সহ):

find . -type f | xargs grep search

অথবা আপনি যদি শীর্ষ স্তরের সন্ধান করতে চান (যা আপনি এগুলি চেষ্টা করে দেখছেন তা পরীক্ষা করার জন্য দ্রুত):

find . -type f -maxdepth 1 | xargs grep search

আপডেট: স্কটের মন্তব্যের জবাবে আমি উদাহরণগুলি পরিবর্তন করেছি। আমি "টাইপ এফ" যুক্ত করেছি।


4
(1)  ~ব্যবহারকারীর হোম ডিরেক্টরি। প্রশ্নটি ব্যবহারকারীর হোম ডিরেক্টরি সম্পর্কে নয়, সুতরাং উত্তরটির উল্লেখ করা উচিত নয়  ~। (২) একটি  findকমান্ডে -name '*'একটি অপ-অপশন (অর্থাত্ এটি কোনও উদ্দেশ্য করে না)।
স্কট

1

আপনার বর্তমান অবস্থান থেকে সমস্ত লুকানো ফাইল এবং ডিরেক্টরিতে অনুসন্ধান করতে:

find . -name ".*" -exec grep -rs search {} \;

কেবলমাত্র সমস্ত লুকানো ফাইল:

find . -name ".*" -type f -exec grep -s search {} \;

কেবলমাত্র সমস্ত লুকানো ডিরেক্টরি:

find . -name ".*" -type d -exec grep -rs search {} \;

1

অন্য সমস্ত উত্তর ভাল। এটি মনে রাখা সহজ হতে পারে:

find . -type f | xargs grep search

এটি কেবলমাত্র ফাইল (লুকানো সহ) এবং প্রতিটি ফাইল গ্রেপ করে।


0

কেবলমাত্র একটি নির্দিষ্ট ফোল্ডারের মধ্যেই আপনি ব্যবহার করতে পারেন:

ls -al | grep " \."

এটি গ্রেপ করার জন্য পাইপ এবং পাইপ দেওয়া খুব সহজ কমান্ড।


0

টাইলারের পরামর্শ ছাড়াও, লুকানো ফাইলগুলি সহ সমস্ত ফাইল এবং ফোল্ডারগুলি পুনরাবৃত্তভাবে গ্রেপ করার কমান্ড এখানে রয়েছে

find . -name "*.*" -exec grep -li 'search' {} \;

0

ম্যাচিং প্রতিরোধ করার জন্য .এবং ..যা ফাইল লুকানো নেই এবং আপনি ব্যবহার করতে পারেন grepসঙ্গে ls -Aএই উদাহরণে মত:

ls -A | grep "^\."

^\. প্রথম চরিত্র হতে হবে বলে .

-Aঅথবা --almost-allবিকল্প বাদ ফলাফল .এবং ..যাতে শুধুমাত্র লুকানো ফাইল ও ডিরেক্টরিগুলি মেলানো হয়।


0

আপনি লুকানো ডিরেক্টরি ফাইলগুলির জন্য নির্দিষ্ট ধরণের লুকানো ফাইলগুলিও অনুসন্ধান করতে পারেন:

grep -r --include=*.directory "search-string"

এটি অন্য কয়েকটি বিকল্পের চেয়ে ভাল কাজ করতে পারে। অন্যান্য বিকল্পগুলি যে কাজ করেছে তা খুব ধীর হতে পারে।

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