¿Qué sucede si mueve accidentalmente un enlace suave seguido de "/"?

¿Qué sucede si mueve accidentalmente un enlace suave seguido de "/"?

Creé un enlace suave al directorio actual,

$ ln -s "$PWD" math

Luego quise moverlo a otro directorio.

$ mv math/ ~/dirlinks/maths/

Entonces me di cuenta de que debería

$ mv math ~/dirlinks/maths/

Entonces presioné Ctrl-c para cancelar el proceso antes de que terminara.

Encontré que hay un directorio mathdebajo ~/dirlinks/maths/, y parece que los archivos debajo .se copian ~/dirlinks/maths/math, porque vi que los archivos debajo ~/dirlinks/maths/mathtambién aparecen debajo .. Pero no lo entiendo porque mvno lo es cp. ¿Qué pasó cuando corro mv math/ ~/dirlinks/maths/?

Gracias.

Respuesta1

Echemos un vistazo a lo que hizo su primer comando: creó un enlace simbólico mathen su directorio actual que apunta a la ruta absoluta del directorio actual. Inspeccionemos un poco más de cerca:

user@host:/free$ ls -al /free
total 4
drwxrwxrwt  2 root root   40 Oct 14 10:29 .
drwxr-xr-x 24 root root 4096 Oct  1 22:28 ..
user@host:/free$ ln -vs /free math
‘math’ -> ‘/free’
user@host:/free$ ls -al /free
total 4
drwxrwxrwt  2 root root    60 Oct 14 10:29 .
drwxr-xr-x 24 root root  4096 Oct  1 22:28 ..
lrwxrwxrwx  1 user users    5 Oct 14 10:29 math -> /free

Ahora, si agrega algunos archivos $PWDy realiza el movimiento:

user@host:/free$ touch a b
user@host:/free$ mv -vi math/ /tmp/Q
‘math/’ -> ‘/tmp/Q’
‘math/math’ -> ‘/tmp/Q/math’
‘math/b’ -> ‘/tmp/Q/b’
‘math/a’ -> ‘/tmp/Q/a’
removed ‘math/math’
removed ‘math/b’
removed ‘math/a’
mv: cannot remove ‘math/’: No such file or directory

Básicamente mueve todo el directorio al que apunta mathal destino. Dado que apunta al directorio actual, se mueve completamente a donde usted lo indicó. Si se encontraba en algún lugar directamente encima del destino, podría haber resultado en un interesante problema de bucle.

información relacionada