mkdir이 bash와 충돌합니다.

mkdir이 bash와 충돌합니다.

내 홈 디렉터리에 디렉터리를 만들려고 하는데 셸 자체가 계속 충돌합니다. 나는 디렉토리에 쓸 수 있는 권한을 가지고 있습니다. 터치를 통해 디렉토리에 파일을 생성할 수 있습니다. csh에서 디렉토리를 생성할 수 있습니다. bash를 사용하려고 하면 상당히 큰 코어 덤프(~59M)를 얻지만 bash는 바이너리이기 때문에 역추적은 별로 도움이 되지 않습니다(단지 많은 "execute_command_internal()" 호출). 내가 만들고 있는 디렉터리의 이름은 중요하지 않은 것 같습니다. 다른 디렉토리에서도 시도해 볼 수 있는데 똑같은 이상한 동작이 발생합니다. su를 사용하여 내 디렉토리에 디렉토리를 생성할 수 있는 다른 사용자를 에뮬레이트할 수 있지만(허용 권한을 설정한 후) bash 충돌 없이는 직접 수행할 수 없습니다. 컴퓨터를 재부팅해 보았습니다.

정말 당황스럽네요. 이것이 무엇인지 또는 문제를 해결하기 위해 내가 할 수 있는 추가 작업에 대해 생각하는 사람이 있습니까?

Xubuntu 14.04, Bash 4.3.11(1)-릴리스

편집: BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath

명령은 비슷 mkdir a하거나 비슷합니다.

편집 2:

ldd /bin/mkdir수익률:

linux-vdso.so.1 =>  (0x00007ffff55fd000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fadc606a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fadc5ca4000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fadc5a65000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fadc5861000)
/lib64/ld-linux-x86-64.so.2 (0x00007fadc62ab000)

답변1

나는 바보입니다.

나는 다음과 같은 곳에서 bash 함수를 복사했습니다.

md() 
{
    [ $# -eq 0 ] && { echo "$0 dirname [permissions]"; return; }
    [ -d "$1" ] && { echo "%1 already exists!"; return; }
    mkdir -m ${2:-0755} -p "$1"
}

alias md="mkdir"문제는 bash가 새 bash 함수를 구문 분석할 때 md()를 mkdir()로 확장하고 함수가 무한 재귀적이 되어 쉘이 충돌하는 것과 같은 별칭이 이전에 있었다는 것입니다 .

관련 정보