হ্যাঁ, আপনি পারেন grep /dev/sda1এবং /procতবে আপনি সম্ভবত এটি করতে চান না। আরো বিস্তারিত:
হ্যাঁ, আপনি বাইনারি বিষয়বস্তু গ্রেপ চালাতে পারেন /dev/sda1। তবে, আধুনিক বড় হার্ড ডিস্কগুলির সাথে, এটি খুব দীর্ঘ সময় নিবে এবং ফলাফলটি কার্যকর হবে না বলে সম্ভবত।
হ্যাঁ, আপনি এই বিষয়বস্তুগুলি গ্রেপ করতে পারেন /procতবে সচেতন হন যে আপনার কম্পিউটারের মেমরিটি ফাইল হিসাবে সেখানে ম্যাপ করা আছে। গিগা বাইটের র্যাম সহ একটি আধুনিক কম্পিউটারে, এটি গ্রেপ করতে অনেক দিন সময় নেয় এবং, ফলস্বরূপ কার্যকর হওয়ার সম্ভাবনা নেই।
ব্যতিক্রম হিসাবে, আপনি যদি কোনও ক্ষতিগ্রস্থ ফাইল সিস্টেমের সাথে একটি হার্ড ডিস্কে ডেটা খুঁজছেন, তবে আপনি grep something /dev/sda1ফাইলটির ডেটা পুনরুদ্ধারের প্রচেষ্টা হিসাবে চালাতে পারেন।
অন্যান্য সমস্যাযুক্ত ফাইল /dev
হার্ড ডিস্ক এবং হার্ড ডিস্কের অধীনে পার্টিশনগুলি /devযদি কারও পর্যাপ্ত ধৈর্য থাকে তবে গ্রেপ করা যেতে পারে। অন্যান্য ফাইল (টুপি টিপ: ব্যবহারকারী 2313067 ) তবে সমস্যার কারণ হতে পারে:
/dev/zeroঅসীম দৈর্ঘ্যের একটি ফাইল। ভাগ্যক্রমে, grep(কমপক্ষে জিএনইউ সংস্করণ) এড়াতে যথেষ্ট স্মার্ট:
$ grep something /dev/zero
grep: input is too large to count
/dev/randomএবং /dev/urandomঅসীম হয়। কমান্ড grep something /dev/randomচিরকালের জন্য চলবে যদি না grepথামার সিগন্যাল দেওয়া হয়।
/dev/urandomপাসওয়ার্ড তৈরি করার সময় গ্রেপ করা কার্যকর হতে পারে । উদাহরণস্বরূপ, পাঁচটি এলোমেলিক অক্ষর পেতে:
$ grep --text -o '[[:alnum:]]' /dev/urandom | head -c 10
G
4
n
X
2
এটি অসীম নয় কারণ এটি পর্যাপ্ত অক্ষর পাওয়ার পরে, headগ্রেপকে বন্ধ করার জন্য পাইপটি বন্ধ করে দেয়।
অসীম লুপস
"... লিঙ্কগুলি ... যখন ট্র্যাভার করা হয় তখন অসীম লুপ তৈরি করুন ..."
গ্রেপ (কমপক্ষে জিএনইউ সংস্করণ) এটি না করার জন্য যথেষ্ট স্মার্ট। আসুন দুটি ক্ষেত্রে বিবেচনা করা যাক:
সঙ্গে -rবিকল্প,, grep নেই সিম্বলিক লিঙ্ক অনুসরণ যদি না তারা স্পষ্টভাবে কমান্ড লাইন নির্দিষ্ট আছে। অতএব, অসীম লুপগুলি সম্ভব নয়।
সঙ্গে -Rবিকল্প,, grep করে সিম্বলিক লিঙ্ক অনুসরণ তা সবই তাদের পরীক্ষা এবং একটি লুপ ধরা করতে রাজি। বর্ণনা করা:
$ mkdir a
$ ln -s ../ a/b
$ grep -R something .
grep: warning: ./a/b: recursive directory loop
সমস্যাযুক্ত ডিরেক্টরিগুলি বাদ দিয়ে grep -r
একটি সরু হিসাবে, grepনির্দিষ্ট ফাইল বা ডিরেক্টরি অনুসন্ধান থেকে গ্রেপ বন্ধ করার জন্য একটি সীমিত সুবিধা সরবরাহ করে। উদাহরণস্বরূপ, যদি আপনি বাদ আসতে পারে যা সমস্তই ডিরেক্টরি নামে proc, sysএবং devসঙ্গে, grep এর রিকার্সিভ অনুসন্ধান থেকে:
grep --exclude-dir proc --exclude-dir sys --exclude-dir dev -r something /
অন্যথা, আমরা অগ্রাহ্য করতে proc, sysএবং devব্যাশ এর বর্ধিত globs ব্যবহার করছে:
shopt -s extglob
grep -r something /!(proc|sys|dev)
grepকোনও ফাইল সন্ধান/procকরে ম্যাপড মেমোরির দিকে নিয়ে যায়, এমন কি ঘটতে পারে যাgrepকোনও ইওএফকে (এলোমেলো) স্মৃতিতে আঘাত করে এবং নিম্নলিখিত ডেটাটিকে একটি হিসাবে ব্যাখ্যা করে নতুন ফাইলের নাম অনুসন্ধান করবেন? আমিgrepউত্স কোড পড়া শুরু করেছি , তবে আমার ধারণা আমি এতে খুব বেশি দেখতে পাচ্ছি না।