cd
별명 대체 후에 고정을 원하지 않으면 (
y 와 함께 서브 쉘을 사용하십시오 )
.
alias my_x="(cd /home/path_to_x && ./x)&"
당신은 그것을 확인할 수 있습니다
alias test_y="(cd /tmp && sleep 10 ) & "
참고 솔루션
alias my_y="/home/path_to_x/x"
정확히 동일하지 않습니다. 사실, 통해 호출하는 경우 my_x
는 x
프로그램은 현재 디렉토리에 실행 /home/path_to_x/
에 의해 호출하면 동안 my_y
, x
명령이 하나 인 현재 디렉토리에 실행 my_y
발행되었다. 이것은 무엇 x
을하고 있는지에 따라 중요하거나 중요하지 않을 수 있습니다 .
[정보] OP 솔루션 , 그것은 작동합니다 bash
:
romano@RRyS:~$ pwd
/home/romano
romano@RRyS:~$ alias x="cd /bin && ./echo A >/dev/null &"
romano@RRyS:~$ x
[1] 16611
romano@RRyS:~$ pwd
/home/romano
그러나 zsh
:
[romano:~] % pwd
/home/romano
[romano:~] % alias x="cd /bin && ./echo A >/dev/null &"
[romano:~] % x
[1] 16744
[1] + 16744 done ./echo A > /dev/null
1& [romano:/bin] % pwd
/bin
[romano:/bin] %
bash와 zsh가 다른 방법으로 목록을 실행 하는 것 같습니다 ... 그래서 명시 괄호를 추가하는 것이 좋습니다 ... @ EliahKagan 감사합니다.
alias x='/home/path_to_x/x'
..
전에 사용하지 마십시오/home
..
(점)은 현재 디렉토리를 나타냅니다.