検索ユーティリティの使用 - 間​​違ったパターンですか?

検索ユーティリティの使用 - 間​​違ったパターンですか?

私はbashシェルの "find"ユーティリティを使って./lib/で特定の共有オブジェクトを見つけようとしました。具体的には、この共有オブジェクトを見つけるために "lib"で始まるすべてのファイルを見つけたいと思います。たとえば、これはリストです。

libpango-1.0.so.0  
libpango-1.0.so.0.3600.8 
libpangocairo-1.0.so.0
libpangocairo-1.0.so.0.3600.8
libpangoft2-1.0.so.0
libpangoft2-1.0.so.0.3600.8
libpangoxft-1.0.so.0
libpangoxft-1.0.so.0.3600.8    

"lib.*"パターンで-nameオプションを試しましたが、目的の結果が得られませんでした。代わりに、異なるディレクトリとサブディレクトリの複数のファイルが印刷されました。具体的には、端末に次のように入力しました。

find . -name 'lib.*' -print

私は何が間違っていましたか?パターンを改善するにはどうすればよいですか?

一方、私はbashを使用しています。

答え1

findコマンドで正規表現を使用しようとしています。正規表現を使用するには、パラメータが必要か、またはを使用して検索-regexできます。awkfindlib

find /usr/lib -type f | awk -F'/' '$NF ~ /^lib/'

はい

$ find /usr/lib -type f | awk -F'/' '$NF ~ /^lib/'
/usr/lib/mate-settings-daemon/libhousekeeping.so
/usr/lib/mate-settings-daemon/libkeyboard.so
/usr/lib/mate-settings-daemon/libxrdb.so
/usr/lib/mate-settings-daemon/libbackground.so
/usr/lib/mate-settings-daemon/libkeybindings.so
/usr/lib/mate-settings-daemon/libmedia-keys.so
/usr/lib/mate-settings-daemon/libclipboard.so
/usr/lib/mate-settings-daemon/libmouse.so
/usr/lib/mate-settings-daemon/libmpris.so
/usr/lib/mate-settings-daemon/libxsettings.so
/usr/lib/mate-settings-daemon/liba11y-settings.so
/usr/lib/mate-settings-daemon/liba11y-keyboard.so
/usr/lib/mate-settings-daemon/libsound.so
/usr/lib/mate-settings-daemon/libxrandr.so
/usr/lib/mate-settings-daemon/libtyping-break.so

または正規表現なし:

find /usr/lib -type f -name "lib*"

はい

$ find /usr/lib -name "lib*"
/usr/lib/mate-settings-daemon/libhousekeeping.so
/usr/lib/mate-settings-daemon/libkeyboard.so
/usr/lib/mate-settings-daemon/libxrdb.so
/usr/lib/mate-settings-daemon/libbackground.so
/usr/lib/mate-settings-daemon/libkeybindings.so
/usr/lib/mate-settings-daemon/libmedia-keys.so
/usr/lib/mate-settings-daemon/libclipboard.so
/usr/lib/mate-settings-daemon/libmouse.so
/usr/lib/mate-settings-daemon/libmpris.so
/usr/lib/mate-settings-daemon/libxsettings.so
/usr/lib/mate-settings-daemon/liba11y-settings.so
/usr/lib/mate-settings-daemon/liba11y-keyboard.so
/usr/lib/mate-settings-daemon/libsound.so
/usr/lib/mate-settings-daemon/libxrandr.so
/usr/lib/mate-settings-daemon/libtyping-break.so

答え2

特定のライブラリがインストールされていることを確認するには、rpmを使用することもできます。

rpm -qa | grep lib

インストールされたパッケージは通常/usr/libまたは/usr/lib64(64ビット版の場合)にあります。だからあなたもこれを行うことができます

ls /usr/lib | grep lib

または使用中の検索ユーティリティ

find /usr/lib -name "lib*"

関連情報