特定のフォルダ内のファイルとディレクトリを検索しようとしています。たとえば、私は/usr/bin
バイナリを探していますpython
。このために を使用しましたが、たとえば、 、 などを見つけることがls | grep python
できました。python3
python3-config
これはうまくいきますが、より簡単な方法があることを知っています。にパイプする必要はありません。しかし、マンページで理解したところによると、試してみるgrep
と結果はありません。find . -name python
find
grep
ファイル検索について知っています。特定のディレクトリを検索する正しい方法は何ですか?
答え1
簡単に言えば、「globbing」で実行できるいくつかの作業があります。シェルは一致を試みます。
? to any character, (unless it is "protected" by single or double quotes
* to any string of characters (even empty ones), unless protected by single or double quotes
[abc] can match either 'a', 'b' or 'c'
[^def] is any single character different than 'd', 'e' or 'f'
したがって、/ usr / binの下にpythonを含むものを一致させるには:
ls -d /usr/bin/*python* # just looks into that directory
あるいは、findでワイルドカードを使用することもできます。ただし、シェルが拡張せずにそのままfindコマンドに渡すように引用符で囲む必要があります。
find /usr/bin -name '*python*' # could descend into subfolders if present