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


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.