Eu tenho um diretório como este:
$ ls -l
total 899166
drwxr-xr-x 12 me scicomp 324 Jan 24 13:47 data
-rw-r--r-- 1 me scicomp 84188 Jan 24 13:47 lod-thin-1.000000-0.010000-0.030000.rda
drwxr-xr-x 2 me scicomp 808 Jan 24 13:47 log
lrwxrwxrwx 1 me scicomp 17 Jan 25 09:41 msg -> /home/me/msg
E eu quero removê-lo usando rm -r
.
No entanto, estou com medo de rm -r
seguir o link simbólico e excluir tudo o que estiver nesse diretório (o que é muito ruim).
Não consigo encontrar nada sobre isso nas páginas de manual. Qual seria o comportamento exato da execução rm -rf
de um diretório acima deste?
Respostas:
Exemplo 1: Excluindo um diretório que contém um link flexível para outro diretório.
Portanto, vemos que o alvo do link virtual sobrevive.
Exemplo 2: Excluindo um Link Direto para um Diretório
Somente o link virtual é excluído. O alvo do link virtual sobrevive.
Exemplo 3: Tentativa de excluir o destino de um link virtual
O arquivo no destino do link simbólico não sobrevive.
Os experimentos acima foram feitos em um sistema Debian GNU / Linux 9.0 (stretch).
fonte
Seu diretório / home / me / msg estará seguro se você rm -rf o diretório a partir do qual você executou ls. Somente o link simbólico será removido, não o diretório para o qual ele aponta.
A única coisa com a qual eu seria cauteloso seria se você chamasse algo como "rm -rf msg /" (com a barra à direita). Não faça isso porque removerá o diretório para o qual a mensagem aponta, em vez do link simbólico da mensagem em si.
fonte
rm
deve remover arquivos e diretórios. Se o arquivo for um link simbólico, o link será removido, não o destino. Não interpretará um link simbólico. Por exemplo, qual deve ser o comportamento ao excluir 'links quebrados' - a saída da empresa com 0 não com diferente de zero para indicar falhafonte