Removendo o arquivo e seus links sym

4

Se eu criar um arquivo e um link simbólico para ele, por exemplo,

touch "example"
ln -s "example" "link_example"

e use

rm example

o link simbólico ainda está lá. Como posso excluir o arquivo e todos os links simbólicos que apontam para esse arquivo com ele?

    
por trolkura 09.06.2016 / 10:46

1 resposta

4

Não há nenhum link de um arquivo para os links simbólicos que apontam para ele, portanto, não há uma maneira direta de considerar example e encontrar link_example com links para ele. Portanto, excluir links simbólicos apontando para um arquivo junto com o arquivo envolve encontrar todos os links simbólicos primeiro.

Você não especifica o sistema que está usando, mas se tiver GNU find , pode excluir um arquivo e seus links com

find -L / -samefile example -delete

Você pode querer executar

find -L / -samefile example

primeiro para listar o que será excluído.

Isso instrui find a seguir os links simbólicos ( -L ), iniciar a partir de / e relatar qualquer arquivo que resulte no mesmo inode de example - portanto, isso corresponderá aos links hard e soft a example bem como example em si.

Como alternativa, usando apenas POSIX find , você pode excluir example e depois procure por links simbólicos quebrados:

rm example
find -L / -type l

Se tiver certeza de que todos os resultados devem ser excluídos:

find -L / -type l -exec rm {} +

irá deletar todos os links simbólicos quebrados (em diretórios nos quais você pode escrever).

    
por 09.06.2016 / 10:54