ver suave simbolico ruta remover link enlace eliminar editar como carpeta borrar linux symlink redhat

suave - No se puede sobrescribir el enlace simbólico RedHat Linux



remover link simbolico unix (3)

He creado un enlace simbólico:

sudo ln -s /some/dir new_dir

Ahora quiero sobrescribir el enlace simbólico para que apunte a una nueva ubicación y no se sobrescribirá. Yo he tratado:

sudo ln -f -s /other/dir new_dir

Siempre puedo sudo rm new_dir , pero prefiero que se sobrescriba si es posible. ¿Algunas ideas?


Dado que el comentario de Link from mikeytown2s está roto, explicaré por qué la respuesta de redent84s es mejor:

Mientras

ln -sfn newDir currentDir

hace el trabajo, no es una operación atómica , como se puede ver con strace:

$ strace ln -snf newDir currentDir 2>&1 | grep link unlink("currentDir") = 0 symlink("newDir", "currentDir") = 0

Esto es importante cuando tiene una raíz de servidor web que apunta a ese enlace simbólico. Podría causar errores mientras el enlace simbólico se elimina y se crea de nuevo, incluso en el lapso de tiempo de un microsegundo.

Para evitar errores use en su lugar:

$ ln -s newDir tmpCurrentDir && mv -Tf tmpCurrentDir currentDir

Esto creará un enlace temporal y después de eso sobrescribir currentDir en una operación atómica .


Puedes crearlo y luego moverlo:

sudo ln -f -s /other/dir __new_dir sudo mv -Tf __new_dir new_dir

edit: Missing -Tf, para tratar el directorio como un archivo normal y no solicitar sobrescribir.

De esta manera lo sobreescribirás.


ln -sfn /other/dir new_dir

funciona para mi. La -n no elimina la referencia al enlace simbólico de destino.