mkdir trava a festa

4

Estou tentando criar um diretório em meu diretório inicial, mas o próprio shell continua travando. Eu tenho permissão para escrever no diretório. Eu sou capaz de criar arquivos no diretório através do toque. Eu posso criar diretórios no csh. Quando tento bash, recebo um core dump bastante grande (~ 59M), mas porque bash é o binário, o backtrace não é muito útil (apenas um monte de chamadas "execute_command_internal ()"). O nome do diretório que estou criando não parece importar. Eu posso tentar em outros diretórios e recebo o mesmo comportamento estranho. Eu posso usar su para emular outro usuário que pode criar diretórios no meu diretório (uma vez que eu configurei as permissões para permitir isso), mas eu não posso fazê-lo sozinho sem bater bash. Eu tentei reiniciar a máquina.

Estou realmente perplexo. Alguém tem alguma opinião sobre o que isso poderia ser ou outras coisas que eu possa fazer para solucionar o problema?

Xubuntu 14.04, Bash 4.3.11 (1) -release

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

O comando é apenas mkdir a ou algo semelhante.

EDIT 2:

ldd /bin/mkdir yields:

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)
    
por William Everett 24.09.2014 / 00:41

1 resposta

4

Eu sou um idiota.

Eu copiei uma função bash de algum lugar semelhante a este:

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

O problema era que eu tinha anteriormente um alias como alias md="mkdir" assim quando bash analisava a nova função bash, ela expandia o md () para mkdir () e a função se tornava infinitamente recursiva e travava o shell.

    
por William Everett 24.09.2014 / 01:16