CD 쉘 내장 추측을 중지하려면 어떻게 해야 합니까?

CD 쉘 내장 추측을 중지하려면 어떻게 해야 합니까?

예를 들어:

$ ls -aF
./ ../ bin/
$ cd tin # with a tee, not bee
bin
$ pwd
/home/user/bin

즉, cd내가 실제로 의미하는 바가 무엇인지 추측해 보세요 cd bin.성공적으로(응?) 그에 맞게 현재 디렉터리를 변경하세요. 이 동작이 문서화되어 있거나 man bash또는 발견되지 않았습니다.배쉬 참조 매뉴얼.

Bash가 오류를 생성하고 일부 정보를 표준 오류에 기록하도록 하고 싶습니다.현재 디렉터리를 변경하지 않고 유지합니다.매개변수와 일치하는 디렉터리가 없는 경우 dir(다음을 고려)확장) 발견됩니다.

참고로,

$ type cd
cd is a shell builtin
$ ps -p $$
PID TTY          TIME CMD
46959 pts/8    00:00:00 bash
$ bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ hostnamectl
   Static hostname:
         Icon name: computer-server
           Chassis: server
        Machine ID:
           Boot ID: 
  Operating System: Red Hat Enterprise Linux
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.9:GA:server
            Kernel: Linux 3.10.0-1160.83.1.el7.x86_64
      Architecture: x86-64
$ #DELETED: Static hostname, Machine ID, Boot ID

답변1

명령의 동작이 cd영향을 받습니다 shopt. 을 참조하여 man bash다음을 검색하세요 shopt. 또한보십시오내장 매장내부에배쉬 참조 매뉴얼.

특히, 질문에 나타난 행동은 일관성이 있습니다 shopt -s cdspell.

cd모든 효과 옵션을 지우면 (질문에 따라) 원하는 효과를 얻을 수 있을 것 같습니다 . cd설명 보기Bourne Shell 내장 함수또는 "SHELL BUILTIN COMMANDS" 아래에 있습니다 man bash.

감사의 말

shopt우리 시스템의 설정을 지적한 익명의 동료에게 감사드립니다 cdspell. 이는 이전 리뷰에서도 인정되었습니다.

관련 정보