PATH에 추가된 2개의 폴더에 이름이 같은 다른 파일이 포함되어 있습니다.

PATH에 추가된 2개의 폴더에 이름이 같은 다른 파일이 포함되어 있습니다.

다음과 같은 파일을 실행하는 방법을 알고 싶습니다.

내 경로에 두 개의 파일이 있습니다.

/home/example/folder1/filewithname.sh
/home/example/folder2/filewithname.sh

둘 다 PATH에 추가했습니다 . 내가 말하는 내용을 folders어떻게 지정합니까 ?filewithname.sh

미리 감사드립니다!

답변1

에 나열된 디렉토리에서 PATH변수가 검색됩니다.나열된 순서대로. 주어진 명령이 발견되면 검색이 종료됩니다.

이는 표시된 순서( folder1이전)로 두 개의 디렉토리를 추가한 경우 명령줄에서 방금 말한 경우 folder2from 명령이 사용된다는 의미입니다. 이것 folder1filewithname.shfolder1. 이 명령의 변형그림자.folder2

명령의 다른 변형을 원하는 경우 /home/example/folder2/filewithname.sh해당 경로(예: as)를 사용하거나 일부 동등한 경로 이름을 통해 명령에 액세스해야 합니다.

디렉토리가 나열되는 순서에 대해 걱정할 필요가 없도록 각 명령에 대한 별칭을 만들 수도 있습니다 $PATH. 예를 들어,

alias c1=/home/example/folder1/filewithname.sh
alias c2=/home/example/folder2/filewithname.sh

이렇게 하면 두 스크립트를 모두 사용 c1하고 c2실행할 수 있습니다.

이러한 별칭 정의를 셸의 초기화 파일에 배치할 수 있습니다( 예 를 ~/.bashrc들어 .bash${ZDOTDIR:-$HOME}/.zshrczsh

답변2

전체 경로를 기준으로 이러한 파일을 개별적으로 실행할 수 있습니다.

$ /home/example/folder1/filewithname.sh
$ /home/example/folder2/filewithname.sh

또는 개별 파일의 디렉터리로 변경하고 상대 경로를 기반으로 실행할 수 있습니다. 예를 들어:

cd /home/example/folder1
~/example/folder1$ ./filewithname.sh

cd /home/example/folder2
~/example/folder2$ ./filewithname.sh

이 방식으로 파일을 실행하려면 파일에 실행 비트를 설정해야 합니다.

관련 정보