Como remover o diretório de um link simbólico para mais o link simbólico?

2

Digamos que a é um link simbólico para b . Eu estou procurando um comando simples para remover a e b de uma só vez que não exige que eu saiba sobre b .

    
por Tobias Kienzler 31.05.2011 / 10:21

3 respostas

4

Aparentemente, não tenho permissão para comentar, então aqui como resposta: Como a é o link, precisamos da opção recursiva no diretório não referenciado ...

rm -rf "$(readlink -f "a")"; rm -f "a"
    
por 25.09.2017 / 01:09
1

Minha solução atual é

rm -rf "$(readlink -f "a")"; rm -f "a"

Mas talvez haja algo mais fácil?

    
por 31.05.2011 / 10:22
0

Alguns sistemas cancelarão o link simbólico quando você adicionar uma barra final (pelo menos se o link simbólico apontar para um diretório):

mkdir -p b/c && touch b/c/foo && ln -s b/c a

rm -rf a/ && rm -f a
# removed "b/c" and "a"

O padrão POSIX mudou um pouco (consulte a Resolução do nome do caminho em IEEE Std 1003.1, edição de 2004 vs. IEEE Std 1003.1-2008 ), mas parece que o comportamento para um nome de caminho com uma barra final e um componente de nome de caminho final que é um link simbólico é (principalmente) o mesmo: o link simbólico é resolvido.

Nem todos os sistemas implementam esse comportamento (veja o comentário de Gilles).

    
por 01.06.2011 / 09:44