같은 이름으로 별칭을 지정한 원래 명령을 어떻게 실행할 수 있습니까? 내 질문은

이 별명을 가진 파일의 ls명령 별명 ~/.bashrc:

alias ls='ls --color=auto'

그런 다음 ls별명을 가진 터미널에서 명령을 실행할 때 ls( ls --color=auto)이 실행됩니다. 그러나 내 질문은 추가 인수없이 그리고 별칭 항목 삭제 문제를 해결하지 않고 독창적으로 ls만 실행할 수 ls있습니까? 이 항목을 삭제하면 간단하게 실행할 수 있기 때문입니다 ls.



답변

다음 방법으로 별칭을 무시할 수 있습니다.

  1. 명령의 전체 경로 이름 : /bin/ls

  2. 명령 대체 : $(which ls)

  3. 내장 명령 : command ls

  4. 큰 따옴표 : "ls"

  5. 작은 따옴표 : 'ls'

  6. 백 슬래시 문자 : \ls


답변

별칭 확장 일시 중지

모든 별칭의 별칭 확장을 삭제하지 않고 일시적으로 비활성화 할 수도 있습니다.

$ shopt -u expand_aliases
$ command -v ls
/bin/ls

사용하려면 다음을 수행하십시오.

shopt -s expand_aliases
$ command -v ls
alias ls='ls --color=auto'

스크립트에서는 별칭 확장이 기본적으로 비활성화되어 있지만 대화 형 셸에서는 기본적으로 설정되어 있습니다.


답변

\명령 앞에서 별칭을 비활성화 할 수 있습니다 .

따라서 원래 ls명령을 실행하려면 다음을 사용하여 실행해야합니다.\ls

예를 들어

  • 먼저 ls명령의 별명을 작성하십시오 .

    [guru@guru-Aspire-5738 /]$ alias ls='ls -l'
    [guru@guru-Aspire-5738 /]$ ls
    total 96
    drwxr-xr-x   2 root root  4096 Sep  3 18:31 bin
    drwxr-xr-x   5 root root  4096 Sep 17 02:51 boot
    drwxr-xr-x   2 root root  4096 Sep  3 22:17 cdrom
    drwxr-xr-x  17 root root  4520 Sep 17 21:11 dev
    drwxr-xr-x 153 root root 12288 Sep 17 21:11 etc
    drwxr-xr-x   3 root root  4096 Sep  3 22:17 home
    lrwxrwxrwx   1 root root    37 Sep  8 21:31 initrd.img -> /boot/initrd.img-3.2.0-68-generic-pae
    lrwxrwxrwx   1 root root    36 Sep  3 22:18 initrd.img.old -> boot/initrd.img-3.2.0-

    (그리고 더 많은…)

  • 별칭을 재정의하는 원본을 ls사용한 출력입니다 \.

    [guru@guru-Aspire-5738 /]$ \ls
    bin    etc         lib     opt   sbin     tmp      vmlinuz.old
    boot   home        lost+found  proc  selinux  usr
    cdrom  initrd.img      media       root  srv      var
    dev    initrd.img.old  mnt     run   sys      vmlinuz
    [guru@guru-Aspire-5738 /]$ 

답변

command별칭 명령 앞에 추가 할 수 있습니다 ( 예 :

command ls

또는 결합하여 원래 실행 파일을 실행하십시오. which

which ls

“/ bin / ls”를 반환하므로

`어떻게`

직접 실행할 수 있습니다.


답변

/bin/ls대신 원래 위치에서 명령을 실행할 수도 있습니다ls


답변