私は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
できます。awk
find
lib
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*"