파일 이름에 파이프 컷을 사용하여 얻은 약식 이름을 사용하여 디렉터리의 모든 파일에 대한 심볼릭 링크를 만드는 방법

파일 이름에 파이프 컷을 사용하여 얻은 약식 이름을 사용하여 디렉터리의 모든 파일에 대한 심볼릭 링크를 만드는 방법

라는 이름의 각 파일에 대한 심볼릭 링크를 만드는 데 *.so.0.*사용하려는 라이브러리( )로 가득 찬 디렉터리가 있습니다 .find*.so.0

(비효과적인) 시도는 다음과 같습니다.

find $HOME/.local/lib64/ -name "lib*.so.0.*" -execdir ln -s {} $(echo {} | cut -d . -f 1-4) \;

하지만 왜 작동하지 않는지 찾을 수 없습니다.

을 사용하여 라이브러리 하나만 사용해 보았지만 ln -s ./libfoo.so.0.12.0. $(echo ./libfoo.so.0.12.0. | cut -d . -f 1-4)결과는 입니다 ./libfoo.so.0.

답변1

애플리케이션을 실행하기 위해 대체 ELF 라이브러리 세트를 설정하려고 하므로 심볼릭 링크를 수동으로 생성하는 대신 문제의 의도한 애플리케이션으로 직접 이동하십시오. ldconfig $HOME/.local/lib64/디렉터리의 모든 심볼릭 링크가 업데이트되어야 합니다.

항상 그런 것은 아니며 .so.0ELF 라이브러리의 SOVERSION 데이터에 따라 달라집니다.

관련 정보