“which”없이 경로에서 파일을 찾으십니까?


12

나는 어떻게 든 스크립트를 실행할 수 있습니다.

$ assemble.sh file
... [output]

그러나 which그것을 찾을 수 없습니다 :

$ which assemble.sh
which: no assemble.sh in (/s/std/bin:/usr/afsws/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/usr/stat/bin:/usr/X11R6/bin:.
  1. 이것이 어떻게 가능한지?
  2. 이 파일이 어디에 있는지 어떻게 알 수 있습니까?

bash를 사용하고 있습니다.


assemble.sh현재 디렉토리에?
Keith

3
아마도 멍청한 질문이지만 별명 alias 입니까 (예 : 명령을 입력 할 때 assemble.sh가 표시 됩니까?
James McLeod

@JamesMcLeod 대단한 추측! acme.sh ( github.com/Neilpang/acme.sh )의 경우였습니다 . 설치 후 acme.sh 별칭이 만들어졌고 PATH var에 있지 않아도 acme.sh가 어떻게 호출되는지 궁금합니다.
rlib

답변:


17

이 명령을 사용하십시오 : type assemble.sh

다양한 쉘에서 작동하며 첫 번째 결과 만 보여줍니다.


9
또는 그냥 type assemble.sh이식 가능합니다 (첫 번째 일치 만 표시하고 type -aksh / bash 구문은 모든 일치를 표시합니다).
Gilles 'SO- 악의를 멈춰라'

6

또는 경로를 분할하고 찾기에 사용하십시오-첫 번째 일치는 솔루션이어야합니다

find ${PATH//:/ } -maxdepth 1 -name assemble.sh -print -quit

type 물론 더 쉽습니다.


2
이것은 매우 유용합니다. 나는 $ PATH를 하위 컴포넌트로 나누고 각각을 검색 할 수 있다는 것을 몰랐습니다.find
Ehtesh Choudhury

1
시도하지만 난이 PATH의 구성 요소에 공백을 깰 수 생각하지 않았다
nhed

4

bash를 사용하고 있지만 which출력 구문 which에 csh로 작성된 이전을 사용하고 있음이 표시 됩니다. PATH는 괄호로 묶여 표시되며 PATH의 디렉토리 는 Solaris /opt/SUNWspro/bin와 유사 하며 /usr/ccs/binSolaris에서만 의미 가있는 항목 을 갖습니다. 솔라리스는 csh를 사용했습니다 which.

여기 내 추측이 있습니다 : bash에 대한 하나의 PATH와 csh에 대한 하나의 PATH가 있습니다. 시스템 문제 일 수 있습니다. 내가 기억하는 것처럼 Solaris는 시스템 전체의 PATH 설정을 위해 / etc / profile 및 / etc / cshrc 파일을 유지합니다. 이 두 초기화 파일은 다른 쉘에 대해 다른 PATH 변수를 설정할 수 있습니다. bash에서 "echo $ PATH"를 수행하고 which명령이 PATH 문자열로 출력되는 내용과 일치하는지 확인하십시오 .


4
command -v assemble.sh

정보

-v`type '내장과 유사한 명령 설명을 출력합니다.

또한 수정 된 버전의 PATH를 찾으려면 유용합니다ASSEMBLE=$(PATH=/usr/bin:/usr/local/opt/coreutils/libexec/gnubin command -v assemble.sh)
nhed

0

locate assemble.sh파일 위치를 찾는 데 사용할 수 있습니다 .


아니요, assemble.sh여기 에는 이름에 포함 된 모든 (전 세계적으로 읽을 수있는) 파일의 위치가 표시되며 여기에는 관련이 없습니다.
Gilles 'SO- 악마 그만해'

전혀 관련이 없습니다. 그와 같은 파일이 여러 개인 경우에도 원하는 파일 locate의 위치를 알 수 있습니다. assemble.sh는 일반적인 파일 이름이 아니므로 파일을 쉽게 찾을 수 있습니다 (OP가 요청한 것임).
nico

1
결과 updatedblocate보여 주기 전에 할 필요 는 없습니까?
glenn jackman

1
일반적으로 updatedb크론 작업으로 매일 실행되지만 파일이 최신 인 경우 강제로 수행해야 할 수 있습니다.
nico
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.