Diretório pai inconsistente de todos os links simbólicos

3

Uma grande parte do meu sistema depende de links simbólicos, então esse é um problema muito sério. Eu faço algo parecido com o seguinte

cd
mkdir test
mkdir other
cd test
ln -s ../other/
# So ~/test contains a symlink to ~/other
cd other
dirname 'pwd'
# So far so good; prints /home/user/test
ls ..
# Prints the contents of /home/user (???)
cd ..
# Now we're back in /home/user/test

Assim, o pai do diretório de trabalho atual e .. referem-se a dois locais diferentes no contexto de ls (e também cp ), mas não cd .

Eu observei esse problema para todos os symlinks no meu sistema, tanto o existente quanto o novo (como o exemplo acima), e em vários sistemas de arquivos. A mesma coisa acontece no nautilus, que agora mostra os breadcrumbs do caminho físico de qualquer symlink que eu clico, em vez do caminho relativo. Que eu saiba, eu não mudei nada que pudesse causar um erro como este, e inicializar um kernel antigo não pareceu resolver o problema. Eu tenho visto muitos posts desejando este comportamento, mas nenhum corrigindo isso.

Qualquer opinião sobre esta questão seria muito apreciada. Estou executando o Ubuntu Linux 12.10 3.11.0-18-generic.

    
por nosuchthingasstars 08.03.2014 / 11:26

1 resposta

0

Seu shell lembra quando você cd em um diretório através de um symlink e usa essa informação quando você usa cd .. . Se você usa bash ou zsh , pode executar o comando set -P para que cd se comporte como cp (ou seja, faça ignorar os links simbólicos para que, no seu exemplo, cd .. leve você para /home/user , não /home/user/test ).

Consulte este Unix & amp; Linux SE question para mais informações, incluindo um hack para fazer com que cp se comporte como cd em vez do contrário.

    
por nwk 10.03.2014 / 20:30