디렉토리를 검색하지 않도록 `dash`(또는 bash) 쉘에서 PATH를 어떻게 설정합니까? 빈 PATH는 현재 디렉터리를 검색하기 때문에

디렉토리를 검색하지 않도록 `dash`(또는 bash) 쉘에서 PATH를 어떻게 설정합니까? 빈 PATH는 현재 디렉터리를 검색하기 때문에

존재하다스프린트이것을 빈 문자열로 설정하면 PATH현재 디렉터리에서 검색됩니다.

$ export PATH=
$ echo $PATH

$ emptyexe
$ /usr/bin/ls emptyexe
emptyexe
$ pwd
/home/ctor
$ cd ..
$ emptyexe
dash: 36: emptyexe: not found

PATH어떤 디렉터리, 특히 현재 디렉터리에서 검색되지 않도록 하려면 무엇을 설정해야 합니까 ?

비어 있음은 PATHBash의 현재 디렉터리도 검색하므로 해당 디렉터리에도 질문이 적용됩니다.

이는 Fedora 28(실제로는 Qubes OS의 AppVM)에 있습니다.

$ rpm -qf `which dash`
dash-0.5.9-1.fc25.x86_64
$ rpm -qf `which bash`
bash-4.3.43-4.fc25.x86_64

답변1

예를 들어 $ export PATH=/dev/null이렇게 해야 합니다.

[ctor@dom0 ~]$ dash
$ echo 'echo meh' > nonemptyexe
$ /usr/bin/chmod a+x ./nonemptyexe
$ nonemptyexe
dash: 3: nonemptyexe: not found
$ ./nonemptyexe
meh
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/ctor/.local/bin:/home/ctor/bin
$ export PATH=/dev/null
$ nonemptyexe
dash: 7: nonemptyexe: not found
$ ./nonemptyexe
meh
$ echo $PATH
/dev/null
$ export PATH=""
$ echo $PATH

$ nonemptyexe
meh
$ ./nonemptyexe
meh
$ 

관련 정보