একটি নির্দিষ্ট প্যাটার্নের (লিনাক্সে) মেলে সমস্ত ডিরেক্টরি এবং উপ-ডিরেক্টরিগুলি কীভাবে আমি খুঁজে পেতে (বা বাদ) করব?


17

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

আমি এখনই যা করছি তা এখানে:

find . -type d \! -iname '*.svn*'

আমি চেষ্টা করেছি:

find . -type d \! iname '.svn' \! iname '.svn/*'

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

টিয়া

উত্তর:


25
find . -type d -not \( -name .svn -prune \)

আমি এই একজনের সাথে যাব, যদিও তারা সবাই কাজ করবে বলে মনে হয়েছিল।
জেসন ডাউন

আমি এর আগে সন্ধানে প্রিন্ট ব্যবহার করেছি, তবে আমি সেই trick (... \) কৌশলটি দেখিনি। ধন্যবাদ।
ররি

আপনি কী বলতে পারবেন যে এটি নোড.জেএস / এক্সপ্রেস অ্যাপে কীভাবে কাজ করবে যেখানে আমি নোড-মডিউলগুলি লাইনগুলি গণনা থেকে বাদ দিতে চাই? আমি চেষ্টা find . -name '*.js' -not \( -name 'node_modules' -prune \) | xargs wc -l সাফল্য ছাড়া ...
কাটার

নোড.জেএস / এক্সপ্রেস অ্যাপ্লিকেশন সম্পর্কিত @ শ্রেডিংয়ের প্রতিক্রিয়াতে এবং নোড_মডিউলগুলি ডিরেক্টরিগুলি ফলাফলের ফলাফল থেকে বাদ দিয়ে, এটি আমার পক্ষে কাজ করে: সন্ধান করুন। -name ' .test.js' -not (-wholename '* node_modules ') ... দেওয়া যে পরীক্ষার চালানোর জন্য আমি চাই ".test.js" সঙ্গে suffixed হয়
mysterlune

এই ছাড়া কাজ করবে -type d? আমি সমস্ত ফাইল অনুসন্ধান করতে চাই তবে ".git" দির পুনরাবৃত্তভাবে বাদ দিন
জেমস মিচ

6

কি সহজ কথা

find . -type d |  grep -v '.svn'

ক্রিয়াকলাপ অনুসন্ধানের যে কোনওটি ব্যবহারের আপনার ক্ষমতা হারাবে।
ডেভিড প্যাশলে

হ্যাঁ, তবে পরিবর্তে একটি দুর্দান্ত ছোট sh লুপ সম্পর্কে কী? :) ফাইলের জন্য find . -type d | grep -v '.svn'; প্রতিধ্বনি যাই হোক না কেন; সম্পন্ন
wazoox

6

-pathবিকল্পের সন্ধান করার কী আছে ?

find . -type d ! -path '*.svn*'

1
একটি সমাপনী উদ্ধৃতি মিস। বাইরের কোনও সম্ভাবনা রয়েছে যে ওয়াইল্ডকার্ডগুলি খুব লোভী হতে পারে।
ড্যান কারলি

2

অনুসন্ধান . -পথ './tmp' -প্রুনি -ও .......


2

আপনি ব্যবহার করতে পারেন:

find . -type d -not -wholename '*.svn*' 

এটি উত্তরটির সামনে থেকে * কেটে ফেলেছে ... এটি সন্ধান করা উচিত। টাইপ ঘ -not -wholename ' /.svn/ ' (এর wholename যে squote তারকাচিহ্ন বিন্দু স্ল্যাশ SVN স্ল্যাশ তারকাচিহ্ন squote)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.