리눅스에서 소프트웨어의 설치 경로를 찾는 방법은 무엇입니까?


답변:


62

당신이 사용할 수있는:

which fluidpoint

어디에서 실행되는지 확인하십시오 ($ PATH에있는 경우). 또는:

find / -name fluidpoint 2> /dev/null

가상 파일 시스템에서 fluipoint라는 파일을 찾고 오류를 리디렉션합니다.

일반적으로 그들이에 /sbin, /usr/sbin, /usr/local/bin또는 ~숨겨진 디렉토리로.

수동에서 :

NAME
       which - shows the full path of (shell) commands.

SYNOPSIS
       which [options] [--] programname [...]

전체 매뉴얼 : https://linux.die.net/man/1/which


4
또는 프로그램이 예를 들어, 실제로 별칭 있는지 확인 alias fluidpoint,
차드 펠러

2
@Chad 일부 버전 which(예 : ZSH에 내장 된 버전)이이 를 위해
Michael Mrozek

@Michael은 훌륭합니다. 귀하의 의견으로 방금 최신 버전의 bash 도이 작업을 수행한다는 것을 알았습니다. 댓글에 +1
채드 펠러

"보통 그들은 ..."라인은 꽤 불분명합니다. 추가 소프트웨어는 /opt/*또는에 있어야합니다 /usr/local/bin. ~당신의 홈 디렉토리입니다. 왜 "숨겨진"이라고 부르는지 혼란 스럽습니다.
Steve-o

모호해서 죄송합니다 ~/.dir. 숨겨진 디렉토리는 홈 디렉토리 아래에 있습니다. 그리고 나는 /usr/local/bindop를 완전히 잊었다 .
n0pe

13

RPM 기반 배포 (CentOS, RHEL, SUSE, openSUSE)를 사용하는 경우 rpm -ql을 사용할 수 있습니다.

예:

rpm -ql findutils
/bin/find
/usr/bin/find
/usr/bin/xargs
/usr/share/doc/packages/findutils
/usr/share/doc/packages/findutils/AUTHORS
/usr/share/doc/packages/findutils/COPYING
/usr/share/doc/packages/findutils/NEWS
/usr/share/doc/packages/findutils/README
/usr/share/doc/packages/findutils/THANKS
/usr/share/doc/packages/findutils/TODO
/usr/share/info/find.info.gz
/usr/share/man/man1/find.1.gz

Windows (및 Mac의 경우)와 같이 Linux / UNIX 환경의 위치에는 설치되지 않습니다. 그들은 더 분산되어 있습니다. 바이너리는 /bin또는에 /sbin있고 라이브러리는에 /lib있고 아이콘 / 그래픽 / 문서는 / share에 있고 구성은 /etc프로그램 데이터에 /var있습니다.

/bin, /lib, /sbin부팅에 필요한 핵심 응용 프로그램을 포함하고는 /usr다른 모든 사용자 및 시스템 응용 프로그램이 포함되어 있습니다.


5

whereis명령 은 명령에 대한 이진, 소스 및 매뉴얼 페이지 파일을 type찾고 특정 명령을 실행할 때 쉘이 정확히 실행하는 것을 알려줍니다. 당신의 경우에
시도 whereis -l fluidplot하십시오.

"fluidplot :"만 반환하지만 경로가 없으면 소프트웨어가 설치되지 않았 음을 의미합니다.

여기에는 ~/.local/share/(내 경우) 아래 홈 폴더에 숨겨져있을 수있는 파일은 포함되지 않습니다 .

리눅스 나사 에서 발견


다시 : "이 ... 포함하지 않는다"는인지 분명하지 않다 를 의미 입력 , whereis , 또는 둘 모두를.
agc

4

@ djsumdog의 답변에 요점을 추가하기 위해 Ubuntu와 같은 DPKG 기반 dist를 사용하는 경우

dpkg --status some_package

무슨 일인지 확인하고

dpkg --listfiles some_package

이 패키지에 포함 / 관련된 파일을 확인하십시오. 바이너리가 실행되지 않는 패키지는 다음과 같습니다 libnss3. 과

dpkg --search some_file

이 파일이 포함 된 패키지를 찾으십시오.

예를 들어, 다음을 dpkg --listfiles libnss3제공합니다.

/.
/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libssl3.so
/usr/lib/i386-linux-gnu/nss
/usr/lib/i386-linux-gnu/nss/libsoftokn3.chk
/usr/lib/i386-linux-gnu/nss/libnssckbi.so
/usr/lib/i386-linux-gnu/nss/libnsssysinit.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.so
/usr/lib/i386-linux-gnu/nss/libsoftokn3.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.so
/usr/lib/i386-linux-gnu/libnssutil3.so
/usr/lib/i386-linux-gnu/libsmime3.so
/usr/lib/i386-linux-gnu/libnss3.so
/usr/share
/usr/share/doc
/usr/share/doc/libnss3
/usr/share/doc/libnss3/copyright
/usr/share/doc/libnss3/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libnss3

폴더는이 패키지의 소유 일뿐만 아니라 다른 패키지도 소유합니다. 파일을 확인하십시오.

그리고 반대로, dpkg --search libnss3.so나에게 :

firefox: /usr/lib/firefox/libnss3.so
thunderbird: /usr/lib/thunderbird/libnss3.so
libnss3:i386: /usr/lib/i386-linux-gnu/libnss3.so
libnss3-1d:i386: /usr/lib/i386-linux-gnu/libnss3.so.1d

0

를 사용하는 대신 which( csh를 사용하지 않는 한 올바른 선택이 아닐 수도 있음 ) command -v fluidplot명령을 실행하도록 요청했을 때 수행 할 작업을 알려주기 위해 셸과 같은 셸을 가져 오는 데 사용할 수 있습니다 ( fluidplot이 예에서) .

나를위한 몇 가지 예 :

$ command -v ls
alias ls='ls --color=auto'
$ command -v cat
/bin/cat
$ test_func() {
> :
> }
$ command -v test_func
test_func
$ which test_func
/usr/bin/which: no test_func in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
$ if command -v noSuchFile; then echo "It exists"; else echo "does not exist"; fi
does not exist

명령을 찾아서 실행하려고하는지 테스트하는 데 사용할 수도 있습니다. 우리 대부분은 Bourne과 같은 셸 (예 : bash 또는 zsh)을 사용하기 때문에which

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.