গ্রেপ - সম্মান-দির সম্মান না


12

/varস্তব্ধ হয়ে যাওয়ার কারণে অনুসন্ধান করতে আমার সমস্যা হচ্ছে /var/run। আমি বাদ দেওয়ার/var/run চেষ্টা করেছি , তবে এটি প্রত্যাশিত ফলাফল দেয় না:

$ sudo grep -IR --exclude-dir="/var/run" '45.78.157.165' /var | egrep -v '(audit|access)'
/var/log/secure:Jun 21 14:08:34 cryptopp sshd[19729]: error: Received disconnect from 199.91.135.157: 3: com.jcraft.jsch.JSchException: reject HostKey: 45.78.157.165 [preauth]
/var/log/secure-20160626:Jun 21 14:08:34 cryptopp sshd[19729]: error: Received disconnect from 199.91.135.157: 3: com.jcraft.jsch.JSchException: reject HostKey: 45.78.157.165 [preauth]
/var/log/secure-20160626:Jun 21 14:08:34 cryptopp sshd[19729]: error: Received disconnect from 199.91.135.157: 3: com.jcraft.jsch.JSchException: reject HostKey: 45.78.157.165 [preauth]
grep: /var/run/saslauthd/mux: No such device or address
grep: /var/run/dbus/system_bus_socket: No such device or address
grep: /var/run/rpcbind.sock: No such device or address
grep: /var/run/udev/control: No such device or address

আমি উভয় চেষ্টা করেছি -exclude-dir=/var/runএবং -exclude-dir="/var/run"। উভয়ই একই ফলাফল উত্পাদন করে।

আমার গ্রেপ কেন ব্যর্থ হচ্ছে?

আমি কীভাবে /var/runপুনরাবৃত্ত গ্রেপ থেকে বাদ দিতে পারি ?


গ্রেট সহ সেন্টোস 7.2

$ grep --version
grep (GNU grep) 2.20
Copyright (C) 2014 Free Software Foundation, Inc.

1
আপনি কি --exclude-dir=/var/runউদ্ধৃতি ব্যতীত চেষ্টা করে দেখেছেন ?
— জ্যাকগল্ড

@ জ্যাকগোল্ড - হ্যাঁ; উভয় সঙ্গে এবং ছাড়া। আমাকে যে প্রশ্ন যুক্ত করা যাক।
— jww

@JakeGould এটা কোনো পার্থক্য করে তোলে: grepপ্রক্রিয়া উভয় ক্ষেত্রে কোট দেখতে না। বাশ তাদের প্রসারিত করে এবং সম্পাদনের কোনও বিকল্প নেই, তাই এগুলি কেবল সরানো হয়। আমার জানা সমস্ত শেলের ক্ষেত্রে এটিই।
— wchargin

উত্তর:


18

আমি মনে করি এটি সম্ভবত কারণ আপনি স্পষ্টভাবে grepথেকে পুনরাবৃত্তভাবে অনুসন্ধান করতে বলছেন /var, এবং এর /var/runঅধীনে কোনও সাবস্ক্রিটারির সাথে মেলে না /var।

গ্রেপ ম্যান পৃষ্ঠা দেখুন, যা উল্লেখ করেছে:

--exclude-dir=glob
    [..] skip any subdirectory whose base name matches glob.  [..]

ফিক্স

অতএব, আপনার আদেশটি স্থির করতে, বাদ পড়ার প্যাটার্নটি পরিবর্তন করুন, যেমন:

sudo grep -IR --exclude-dir="run" '45.78.157.165' /var | egrep -v '(audit|access)'

আমি এই একই প্রশ্ন। grep -r --exclude-dir=./root/js sometext .বর্তমান অবস্থান থেকে সাবফোল্ডার বাদ দিতে আপনি কীভাবে পরিবর্তন করবেন?
— psynnott

3
নিশ্চিত না যে /এস কিছু করেন। গ্রেপ প্রতিটি ফোল্ডারে যায় এবং সেই সময়ে অনুসন্ধান শুরু করে। এটি কার্যকরভাবে সর্বদা বর্তমান ফোল্ডারটি অনুসন্ধান করে। আপনি যদি একটি সাব-ফোল্ডার (উদাঃ /home/me/dev/project1/js) বাদ দিতে চান এবং আপনি অনেকগুলি ফোল্ডার আপ (যেমন শুরু করা /home/me) থেকে অনুসন্ধান করছেন , তবে আপনাকে যে বেস ফোল্ডারের নামটি বাদ দিতে চান তা নির্দিষ্ট করতে হবে (উদাঃ --exclude-dir=js)। দুর্ভাগ্যক্রমে, এটি শ্রেণিবিন্যাসের অন্যত্র একই নামের কোনও উপ-ফোল্ডারটিকেও বাদ দেবে। আপনি আরো বেশি নিয়ন্ত্রণ সঙ্গে কিছু চান, আপনি ব্যবহার তাকান করার চেষ্টা করতে পারেন findসঙ্গে grep।
— জেহাদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.