বাদ ডিরেক্টরি দেখুন


13

আমি লিনাক্সে (উবুন্টু) থাকি এবং আমি যখন কিছু করি তখন আমি নির্দিষ্ট ডিরেক্টরি (যেমন .hg) বাদ দিতে চাই

find | less  

.Hg ডিরেক্টরিটি তালিকা থেকে বাদ দেওয়ার জন্য আমি নিম্নলিখিতটি চেষ্টা করেছি, তবে কাজ করছে বলে মনে হচ্ছে না।

find -type d \( ! -iname \.hg \)
find -type d \( ! -name \.hg \)
find -type d \( ! -iname .hg \)

আমি কীভাবে .directoryএকটি ফাইন্ড কমান্ডে বাদ দেব

উত্তর:


14

উপর একটি অনুরূপ জন্য গবেষণা findসমাধান আমি সহায়ক ব্যাখ্যা আবিষ্কৃত কিভাবে SH মধ্যে 'খুঁজতে' এর '-prune' বিকল্পটি ব্যবহার করতে হয়? লরেন্স গনসাল্ভেস দ্বারা ।

আপনি এর মতো কিছু ব্যবহার করতে পারেন:

find . \( -type d -name .hg -prune \) -o \( -type f -name "foo" -print \)

বা (নাম বাদে)

find . \( -type d -name .hg -prune \) -o \( -type f -print \)

(পালানো) প্রথম বন্ধনী \(এবং ওআর ( ) এর বাম এবং ডান একসাথে \)পরীক্ষা ( typeএবং name) এবং সম্পর্কিত ক্রিয়াগুলি ( pruneএবং printযথাক্রমে) গ্রুপ করুন -o

যেহেতু -oজুটস্টেপজেশনের চেয়ে কম অগ্রাধিকার রয়েছে তাই আপনি যদি চান তবে প্রথম বন্ধনী বাদ দিতে পারেন। অনেকগুলি findবাস্তবায়ন আপনাকে চূড়ান্ত এড়াতে দেয় -print

find . -type d -name .hg -prune -o -type f -name "foo" -print

1
আমি আমার সমাধানটি লিখতে চলেছি, তবে এটি ঠিক এটির মতো দেখা যাচ্ছে। ব্যক্তিগতভাবে আমি -pruneপ্রথমে বন্ধনীর প্রথম সেটটির ভিতরে এবং দ্বিতীয় সেটটিতে রেখেছিলাম -type f -print, কেবল এবং / অথবা অপারেশনগুলিকে আরও সুস্পষ্ট করে তুলতে, তবে অন্যথায় এটি আমার কাছে স্পষ্ট দেখা যাচ্ছে।
me_ এবং

আমি বন্ধুত্বগুলি (এবং তাদের যুক্তি) উন্নত করেছি @ মাই_এর মন্তব্যে ধন্যবাদ।
fheub

2

এক নজরে দেখুন ack: http://betterthangrep.com/

ডিফল্ট বর্জনিত ফোল্ডারগুলির একটি যুক্তিসঙ্গত সেট থাকা ছাড়াও (.hg একটি উদাহরণস্বরূপ ডিফল্ট বাদ দেওয়া হয়), নতুন ফোল্ডারগুলি বাদ দেওয়া সহজ:

ack --ignore-dir=.directory search_term

এটিকে আপনার ব্যবহারের ক্ষেত্রে ফিরিয়ে আনতে যেখানে আপনি ফাইলগুলির একটি তালিকা সন্ধান করছেন, আপনি -fবিকল্পটি ব্যবহার করতে পারেন , যেমন:

ack -f --ignore-dir=.directory

আমি সংশ্লেষিত অনুসন্ধান / সরল অ্যাককে আদেশগুলি সন্ধান থেকে সরিয়ে নিয়েছি।

পরামর্শ: সাধারণত ব্যবহৃত কমান্ড লাইন বিকল্পগুলি (উদাহরণস্বরূপ ফোল্ডারগুলি বাদ দেওয়া) একটি .ackrc ফাইলে রাখুন।


find | lessপ্রশ্নের মধ্যে থাকা ভিত্তিতে , ওপি ফাইলগুলির একটি সহজ তালিকা খুঁজছে। এটি কীভাবে এতে সহায়তা করে?
সিভিএন

@ মাইকেলKjörling আমি আমার উত্তরে যেমন বলেছি, -f বিকল্পটি ফাইলগুলির একটি তালিকা সরবরাহ করে।
ব্রায়ান লেথেম

-2

আপনি চেষ্টা করতে পারেন

find \( ! -regex '.*/\.directory\(\|/.*\)' \)

খুব নিশ্চিত যে এটি ওপি যা চেয়েছিল তার মতো কিছুই করে না।
me_ এবং

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