나는 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*"