2017-12-20 28 views
0

Bash에서 tmux ls을 올바르게 실행하면 올바르게 작동합니다. 그러나, zsh을, 나는이 오류가 :별칭을 많이 대체하는 Zsh

tmux: unknown option -- p
usage: list-sessions [-F format]

나는 zsh을가 ls 내 사용자 정의 별명 명령의 ls을 대체하고 있기 때문입니다 의심 : 나는 alias -g tmux\ ls='tmux list-sessions' 설정을 시도

alias -g ls='ls -p --color' 

있지만, 작동하지 않았다.

Zsh의 별칭 확장/대체 동작을 변경하는 방법이 있습니까?

답변

2
당신은 그것을 의미하는 글로벌 별칭으로 ls를 정의

어디 쉘이 ls는이 명령으로 사용되지 바로 그 때,보고 을 확장됩니다. 당신이 alias -g를 사용할 때 zsh을에서

alias ls='ls -p --color' 
+0

. 이 별명을 루트의'.zshrc' 파일에 정의해야합니까? – Nelson

+0

'sudo ls '를 의미하지 않는 한'-g'로 "root로 사용할 수있게"하는 방법을 모릅니다. 그러나 하위 커맨드의 내용을 대체하는 행동은 당신이 원하지 않는 말과 정확히 같습니다. –

+0

@CharlesDuffy 예,'sudo ls'가 별명을 사용하고 싶습니다만'tmux ls '처럼'ls'가 * everywhere *로 대체되는 것을 원하지 않습니다. 그러나 이것은 내 문제를 해결하고'sudo '를 사용할 때 수동으로 별칭을 타이핑 할 수있다. – Nelson

0

는 전역 별칭을 가지고 : 그냥 -g 옵션을 놓습니다. 전역 별칭은 명령의 시작 부분 에서뿐만 아니라 모든 곳에서 작동하는 별칭입니다. 여기가 원하는 것이 아닙니다!

그러나 글로벌 별칭은 매우 강력하고 유용 할 수 있습니다. 예를 들어 :

alias -g L="| less" # to page the output with less 
alias -g WL="| wc -l" # to have stats from wc 
alias -g CP="| xclip -f -r" # to copy output into clipboard 
alias -g NU="&> /dev/null" # to remove error and standard outputs 

그들을 사용하려면이 루트로 이용 될 수 있도록 내가`-g`을 사용했다

ps aux L # expanded into: ps aux | less 
ls -1 WL # expanded into: ls -1 | wc -l 
date CP # expanded into: date | xclip -f -r 
ls /foo2 /usr NU || echo okay # expanded into: ls /foo2 /usr &> /dev/null || ...