Eu tenho um link simbólico para um diretório importante. Quero me livrar desse link simbólico, mantendo o diretório por trás dele.
Eu tentei rm
e voltei rm: cannot remove 'foo'
.
Eu tentei rmdir
e voltou rmdir: failed to remove 'foo': Directory not empty
Eu então progrediu através rm -f
, rm -rf
esudo rm -rf
Depois fui procurar minhas cópias de segurança.
Existe uma maneira de se livrar do link simbólico sem jogar fora o bebê com a água do banho?
rm -r link/
exclui o conteúdo do destinoThen I went to find my back-ups
- Isso me fez rir.Respostas:
Basicamente, você precisa dizer a ele para excluir um arquivo , não para excluir um diretório . Acredito que a diferença entre
rm
ermdir
exista devido a diferenças na maneira como a biblioteca C trata cada uma.De qualquer forma, o primeiro deve funcionar, enquanto o segundo deve se queixar de ser um diretório.
Se não funcionar como acima, verifique suas permissões. Você precisa de permissão de gravação no diretório que contém os arquivos para remover.
fonte
rm -rf folderName
(sem arrastar /) para remover o link simbólico. O Amazon Linux se comporta dessa maneira em determinadas circunstâncias, por exemplo.-r
com um link simbólico, a menos que você queira perder tudo dentro dele.-f
também não deve ser necessário, exceto talvez para substituir as permissões de arquivo.unlink
não tem relação com aln
operação de 'link' do AKA. O nomeunlink
refere-se ao processo de desvincular / remover um arquivo da tabela de arquivos do sistema de arquivos para que o conteúdo seja desanexado de qualquer referência a eles - eles são desvinculados. É um nome confuso que é totalmente enganador quando aplicado a links e links simbólicos em particular.unlink
funcionará com links simbólicos porque funciona com qualquer arquivo, independentemente do tipo.alias rm="rm -i"
salvou mais peles do que qualquer outra coisa lá fora, eu acho.use o comando "unlink" e certifique-se de não ter o / no final
Eu acho que isso pode ser problemático se eu estiver lendo corretamente.
https://linux.die.net/man/2/unlink
fonte
~/c/a/file
,/c/b/
, comln -s ~/c/a ~/c/b/
. Em~/c/b/
,rm a/
não funciona,rm -rf a/
apenas esvazia o originala
.unlink a
funciona perfeitamente eunlink a/
não faz nada.unlink
é simplesmente um apelido pararm
. Mostra que arm
disciplina adequada deve ser utilizada ao lidar com qualquer parte da sua estrutura de diretórios.rm -f
, silenciosamente, um link será excluído, quer exista ou não, enquantounlink
queixará se o link não estiver presente. Não existe uma opção `-f 'equivalente para desvincular, torna o script mais complexo.unlink
pode excluir arquivos regulares. é menos funcional do querm
e não é específico para links simbólicos.rm
também não exclui diretórios sem o-r
sinalizador. Por isso, recomendo preferir rm, que possui sinalizadores para verboso e interativo; bem como mensagens significativas de aviso e erro.rm deve remover o link simbólico.
fonte
Use,
rm symlinkname
mas não inclua uma barra no final (não userm symlinkname/
:). Você será perguntado se deseja remover o link simbólico,y
para responder que sim.fonte
Supondo que seja realmente um link simbólico,
Deveria descobrir, mas como não podemos ativar o código latente destinado a outro caso que não existe mais, mas que faz a coisa certa aqui.
fonte
Se a rm não conseguir remover um link simbólico, talvez seja necessário examinar as permissões no diretório que contém o link simbólico. Para remover as entradas do diretório, você precisa de permissão de gravação no diretório que o contém.
fonte
Assumindo que sua configuração é algo como:,
ln -s /mnt/bar ~/foo
então você deve conseguir fazer issorm foo
sem nenhum problema. Se não puder, verifique se você é o proprietáriofoo
e tenha permissão para gravar / executar o arquivo. A remoçãofoo
não tocarábar
, a menos que você faça isso recursivamente.fonte
No CentOS, basta executar
rm linkname
e ele solicitará "remover link simbólico?". Digite Ye Enter, o link desaparecerá e o diretório estará seguro.fonte
Eu tive esse problema com o MinGW (na verdade, o Git Bash) em execução no Windows Server. Nenhuma das sugestões acima parecia funcionar. No final, fez uma cópia do diretório para excluir o link virtual no Windows Explorer e o item na Lixeira. Ele fez barulhos como se estivesse excluindo os arquivos, mas não o fez. Faça um backup!
fonte