별명으로 음영 처리 된 명령을 실행하십시오. 별칭이 있으며 옵션없이 alias ls=’ls –color=auto’일반이라고 부르고

bash에 다음과 같은 별칭이 있으며 옵션없이 alias ls='ls --color=auto'일반이라고 부르고 싶습니다 ls. 그렇게하는 유일한 방법은 unalias, 명령을 수행 한 다음 다시 별칭을 사용하는 것입니까? 아니면 멋진 트릭이나 해결 방법이 있습니까?



답변

별명을 사용하지 않도록 백 슬래시를 접 두부로 추가 할 수도 있습니다. \ls

편집 : 동일한 작업을 수행하는 다른 방법은 다음과 같습니다.

Mikel에command ls 따라 “command”를 사용하십시오 .

전체 경로를 사용 /bin/ls에 따라 우서 .

명령을 인용하십시오 : "ls"또는 'ls'Mikel의 의견에 따라.

을 사용하여 해당 터미널 세션에 대한 별칭을 임시로 제거 할 수 있습니다 unalias command_name.


답변

그것이 command명령의 목적입니다.

시험

command ls

이것은 쉘에게 별명과 기능을 우회하도록 지시합니다.

이 방법은 bash , zshash / dash 에서 지원됩니다 .


답변

별명은 정의 된 바로 가기입니다. 이 예에서 정의 된 별칭은 문자열 ls이며이 문자열 은 실행 ls --color=auto됩니다. 해당 동작을 원하지 않는 경우 ls절대 경로를 사용하여 이진 을 호출 할 수 있습니다 .

따라서 실행 /bin/ls하면 정의한 별칭이 아니기 때문에 색상없이 출력됩니다.

별명을 다른 것으로 변경하거나 ls색상 매개 변수없이 실행되는 새 별명을 추가 할 수도 있습니다 .


답변

@uther의 답변을 기반으로하는 또 다른 방법은 $(which ...)또는 `which ...`(backticks 사용 ``) 실행 파일의 경로를 자동으로 찾는 것입니다. 이것은 다음에서 작동합니다 bash:

$(which ls)

`which ls`

의심 할 여지없이 단순히 명령 앞에 접두사를 붙이는 \것이 훨씬 짧습니다.

업데이트 : 별칭 명령에서`which`를 사용하는 방법에 따르면 ? , 이것은 전혀 신뢰할 수없는 것 같습니다.


답변

개인적으로 명령과 이름이 같은 별칭을 정의하지 않기 때문에 ls항상 실제 명령을 호출합니다. 내가 좋아하는 옵션의 다양한 조합에 대한 별칭 또는 기능을 가지고 l, ll하고 lg. (이것은 내가 필요 의미 unalias ls내에서 .bashrc또는 .cshrc.)

내가 선호하는 옵션에 대한 OS의 가정 ( ls명령 자체 디자이너의 가정을 무시)은 내 자신의 취향과 거의 일치하지 않는다는 것을 알았 습니다. 의 모양이 마음에 들지 ls --color=auto않으며 흑백에서 흰색에서 가독성이 크게 다를 수 있습니다.

YMMV 및 기타 솔루션은 여전히 ​​잘 알고 있습니다.


답변

LS왜 그런지 잘 모르겠지만 명령을 대문자로 입력하는 것처럼 작동하는 것 같습니다 .


답변