Tengo un enlace simbólico a un directorio importante. Quiero deshacerme de ese enlace simbólico, manteniendo el directorio detrás de él.
Lo intenté rmy volví rm: cannot remove 'foo'.
Probé rmdiry regresé rmdir: failed to remove 'foo': Directory not empty
a continuación, que avanzaba a través rm -f, rm -rfysudo rm -rf
Luego fui a buscar mis copias de seguridad.
¿Hay alguna manera de deshacerse del enlace simbólico sin tirar al bebé con el agua del baño?

rm -r link/elimina el contenido en el objetivoThen I went to find my back-ups- Eso me hizo reír.Respuestas:
Básicamente, debe indicarle que elimine un archivo , no que elimine un directorio . Creo que la diferencia entre
rmyrmdirexiste debido a las diferencias en la forma en que la biblioteca C trata a cada uno.En cualquier caso, el primero debería funcionar, mientras que el segundo debería quejarse de que foo es un directorio.
Si no funciona como se indica arriba, verifique sus permisos. Necesita permiso de escritura en el directorio que lo contiene para eliminar archivos.
fuente
rm -rf folderName(sin arrastrar /) para eliminar el enlace simbólico. Amazon Linux se comporta de esta manera bajo ciertas circunstancias, por ejemplo.-rcon un enlace simbólico a menos que quiera perder todo lo que contiene .-ftampoco debería ser necesario, excepto quizás para anular los permisos de archivo.unlinkno tiene relación con lalnoperación AKA 'link'. El nombre seunlinkrefiere al proceso de desvincular / eliminar un archivo de la tabla de archivos del sistema de archivos para que el contenido se separe de cualquier referencia a ellos; se desvinculan. Es un nombre confuso que es completamente engañoso cuando se aplica a enlaces y enlaces simbólicos en particular.unlinkfuncionará con enlaces simbólicos porque funciona con cualquier archivo independientemente del tipo.alias rm="rm -i"creo que ha guardado más pieles que cualquier otra cosa.use el comando "desvincular" y asegúrese de no tener el / al final
Creo que esto puede ser problemático si lo estoy leyendo correctamente.
https://linux.die.net/man/2/unlink
fuente
~/c/a/file,/c/b/, conln -s ~/c/a ~/c/b/. En~/c/b/,rm a/no funciona,rm -rf a/solo vacía el originala.unlink afunciona perfectamente yunlink a/no hace nada.unlinkes simplemente un alias pararm. Demuestra que sermdebe utilizar la disciplina adecuada cuando se trata de cualquier parte de la estructura de su directorio.rm -f, se eliminará silenciosamente un enlace, exista o no, mientras queunlinkse quejará si el enlace no está presente. No hay una opción '-f' equivalente para desvincular, hace que el script sea más complejo.unlinkPuede eliminar archivos normales. es menos característico quermy no específico para enlaces simbólicos.rmtampoco elimina directorios sin la-rbandera. Así que recomiendo preferir rm, tiene banderas para verbose e interactivo; así como mensajes de advertencia y error significativos.rm debería eliminar el enlace simbólico.
fuente
Use
rm symlinknamepero no incluya una barra diagonal al final (no use:)rm symlinkname/. Luego se le preguntará si desea eliminar el enlace simbólico,ypara responder que sí.fuente
Asumiendo que en realidad es un enlace simbólico,
Debería resolverlo, pero como no puede, habilitamos el código latente destinado a otro caso que ya no existe pero que hace lo correcto aquí.
fuente
Si rm no puede eliminar un enlace simbólico, tal vez necesite mirar los permisos en el directorio que contiene el enlace simbólico. Para eliminar entradas de directorio, necesita permiso de escritura en el directorio que lo contiene.
fuente
Suponiendo que su configuración es algo como:,
ln -s /mnt/bar ~/fooentonces debería poder hacerrm foosin problemas. Si no puede, asegúrese de ser el propietario delfooy tener permiso para escribir / ejecutar el archivo. La eliminaciónfoono se tocarábar, a menos que lo haga de forma recursiva.fuente
En CentOS, simplemente ejecute
rm linknamey le pedirá "¿eliminar el enlace simbólico?". Escriba Yy Enter, el enlace desaparecerá y el directorio estará seguro.fuente
Tuve este problema con MinGW (en realidad Git Bash) ejecutándose en un servidor de Windows. Ninguna de las sugerencias anteriores parecía funcionar. Al final, hice una copia del directorio en caso de que luego eliminé el enlace flexible en el Explorador de Windows y luego eliminé el elemento en la Papelera de reciclaje. Hizo ruidos como si estuviera borrando los archivos pero no lo hizo. ¡Sin embargo, haz una copia de seguridad!
fuente