'mv' cria um link físico em vez de mover ou renomear arquivo ou diretório

0

Estou com problemas muito estranhos ao mover e renomear diretórios e arquivos usando mv que nunca experimentei antes. O mais estranho é que isso está acontecendo no Ubuntu e no Cygwin no Windows.

mv tenta criar um link físico em vez de realmente mover ou renomear um arquivo ou diretório.

Exemplo de renomear diretório:

$ mkdir test
$ mv test test2
ln: ‘test’: hard link not allowed for directory

Exemplo de renomeação de arquivo:

$ touch test
$ mv test test2
$ ll -i
131140 -rw-rw-r-- 2 user group    0 Nov 13 16:06 test
131140 -rw-rw-r-- 2 user group    0 Nov 13 16:06 test2

É evidente que mv acabou de criar um link físico, porque os dois arquivos têm o mesmo número de inode.

Por que isso está acontecendo?

Eu também tenho outro sistema com Debian e mv está funcionando como eu esperava lá. É possível configurar esse comportamento em algum lugar em dotfiles do usuário? Se eu mudar para root no Ubuntu , mv funciona bem. Então eu suspeito de configuração de algum usuário, já que eu uso os mesmos arquivos de ponto para Linux assim como para Cygwin .

    
por Dawid Ferenczy 13.11.2014 / 17:30

1 resposta

1

Então a causa foi puramente em mim. Eu tinha esse alias em meus dotfiles, o que causou esse comportamento estranho: alias mv='ln -i' .

O motivo era simples: quando eu criava aliases "protegidos" de cp , mv e ln usando o argumento interactive , copiava apenas os aliases anteriores e colados. E no caso de um apelido ln , alterei o conteúdo do alias, mas não o nome dele. Deve ser ln='ln -i' , mas acabou em mv='ln -i' .

Eu sinto vergonha. Desculpem a pergunta estúpida, duvido que alguém venha a experimentar o mesmo problema.

    
por 13.11.2014 / 19:09