lsの代替品|

lsの代替品|

特定のフォルダ内のファイルとディレクトリを検索しようとしています。たとえば、私は/usr/binバイナリを探していますpython。このために を使用しましたが、たとえば、 、 などを見つけることがls | grep pythonできました。python3python3-config

これはうまくいきますが、より簡単な方法があることを知っています。にパイプする必要はありません。しかし、マンページで理解したところによると、試してみるgrepと結果はありません。find . -name pythonfind

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

関連情報