ディレクトリ構造内の特定の単語を含むすべてのファイルを検索しようとしても機能しません。
- たとえば、 path で実行すると、
/Institute/IITDhanbad/
次のコマンドが実行されます。
結果はgrep -rn "Programmer" *
BTECH/CompScience.txt:22: Sudip is a Programmer
- ただし、パスで実行すると
/Institute/IITDhanbad/MTECH
同じコマンドが提供されます。CSP/Boys/Good/Electronics.txt:13: Sourav is a Programmer
問題は、フォルダgrep
から呼び出しを実行したときに予想される結果/Institute/IITDhanbad/
は次のとおりです。両方結果は
BTECH/CompScience.txt:22: Sudip is a Programmer
MTECH/CSP/Boys/Good/Electronics.txt:13: Sourav is a Programmer
何が間違っていて、どのように解決しますか?
追加情報:
ファイル形式とアクセス権は次のとおりです。
文書 モデル MTECH
drwxrwsr-x
BTECH
drwxrwsr-x
CSP
lrwxrwxrwx
ls -ld
/Institute/IITDhanbad/
パスから:drwxrwsr-x 4 suresh faculty 4096 Sep 16 00:53
ls -ld
/Institute/IITDhanbad/MTECH
パスから:drwxrwsr-x 4 suresh faculty 4096 Sep 16 00:53
ls -ld
/Institute/IITDhanbad/MTECH/CSP
パスから:dr-xr-sr-t 4 ganesh faculty 4096 Sep 12 20:58 .
ベストアンサー1
CSP
シンボリックリンクです(参照l
)lrwxrwxrwx
。明らかgrep
に、引数として与えられたもの以外のシンボリックリンクに従わないようです。-r
これを行うとき:
grep -rn "Programmer" *
CSP
(上にあります/Institute/IITDhanbad/MTECH/
か?)の親ディレクトリでは、CSP
シェルが展開された後に引数として表示されます*
。ただし、「親」ディレクトリ(in)/Institute/IITDhanbad/
でこれを行う場合、これはパラメータでCSP
はなく、grep
再帰スキャン中に見つかったシンボリックリンクです。
これがGNUがどのようにgrep
機能するかです。あなたはgrep
GNUですかgrep
?その場合は、マニュアルを参照してください-R
。-R
いい-r
けどするシンボリックリンクに従ってください。
grep -rn "Programmer" .
親ディレクトリで操作を実行した場合、CSP
これはCSP
パラメータとして表示されません。の使用は*
観察された結果にとって非常に重要です。