Bash에서 "별칭"을 만드는 방법에는 몇 가지가 있습니까?

Bash에서 "별칭"을 만드는 방법에는 몇 가지가 있습니까?

나는 두 가지 방법만 알고 있습니다: alias foo=bar그리고 function foo() { bar }.

내가 묻는 이유는 - 갑자기 내 bash 세션 중 하나에서 - 오류 ( 내 환경 변수 의 항목 중 하나 ) ln때문에 명령을 실행할 수 없었기 때문입니다.bash-bash: /usr/local/.../ln: No such file or directory/usr/local/.../PATH

하지만 실행하면 예상되는 바이너리가 출력되기 PATH때문에 문제가 되지 않습니다 (절대 경로를 지정하면 제대로 실행됩니다).which ln/usr/bin/ln

ln또한 내 alias선언을 확인했는데 function아무것도 없습니다.

$ declare -f | grep ln
$ alias | grep ln

문제는 하나의 bash 세션에서만 발생합니다. 새 셸을 시작하면 다시 잘 작동하지만, 이 특정 bash 세션에서 갑자기 이 문제를 일으키는 원인이 무엇인지 궁금합니다.

이 문제의 원인에 대한 아이디어가 있습니까?

답변1

이 명령을 사용할 때는 주의하십시오 which. 명령을 사용하는 것이 좋습니다 type ....

$ type ln
ln is /bin/ln

whereis다음 명령을 사용할 수도 있습니다 .

$ whereis ln
ln: /bin/ln /usr/share/man/man1p/ln.1p.gz /usr/share/man/man1/ln.1.gz

관련 정보