경로에 "which"가 없는 파일을 찾으시겠습니까?

경로에 "which"가 없는 파일을 찾으시겠습니까?

(어쨌든) 스크립트를 실행할 수 있습니다.

$ 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. 이 파일이 어디에 있는지 어떻게 알 수 있나요?

나는 배쉬를 사용하고 있습니다.

답변1

다음 명령을 사용하십시오. type assemble.sh

다양한 쉘에서 작동하며 첫 번째 결과만 표시합니다.

답변2

또는 경로를 분할하여 찾기에 사용하세요. 첫 번째 일치 항목이 해결책이 되어야 합니다.

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

type물론 더 쉽습니다.

답변3

Bash를 사용 중일 수도 있지만 구문 출력에서는 이전 csh 작성 구문을 which사용하고 있음을 보여줍니다 . whichPATH는 괄호 안에 표시되며 PATH의 디렉토리에는 Solaris에서만 의미가 있는 /opt/SUNWspro/bin및 같은 항목이 있습니다. /usr/ccs/bin이는 일관성이 있습니다. Solaris는 csh 를 사용합니다 which.

내 생각에는 bash에 대한 경로가 하나 있고 csh에 대한 경로가 다른 것입니다. 이는 시스템 문제일 수 있습니다. 제가 기억하기로 Solaris는 시스템 전체 PATH 설정을 위해 /etc/profile 및 /etc/cshrc 파일을 유지 관리합니다. 두 개의 초기화 파일은 서로 다른 쉘에 대해 서로 다른 PATH 변수를 설정할 수 있습니다. bash에서 "echo $PATH"를 실행하여 which명령으로 인쇄된 PATH 문자열과 일치 하는지 확인하세요 .

답변4

locate assemble.sh를 사용하여 파일의 위치를 ​​찾을 수 있습니다 .

관련 정보