"/" 뒤에 오는 소프트 링크를 실수로 이동하면 어떻게 됩니까?

"/" 뒤에 오는 소프트 링크를 실수로 이동하면 어떻게 됩니까?

현재 디렉터리에 대한 소프트 링크를 만들었습니다.

$ ln -s "$PWD" math

그런 다음 다른 디렉토리로 옮기고 싶습니다.

$ mv math/ ~/dirlinks/maths/

그러다가 나는 그래야 한다는 것을 깨달았다.

$ mv math ~/dirlinks/maths/

따라서 프로세스가 완료되기 전에 Ctrl-c를 눌러 프로세스를 취소합니다.

math아래에 dir이 있는 것을 발견했는데 , 아래 파일 도 아래에 나타나는 것을 보니 아래 파일이 거기에 복사된 ~/dirlinks/maths/것 같습니다 . 하지만 그렇지 않기 때문에 이해가 되지 않습니다 . 달리면 어떻게 되나요 ?.~/dirlinks/maths/math~/dirlinks/maths/math.mvcpmv math/ ~/dirlinks/maths/

감사해요.

답변1

첫 번째 명령이 수행하는 작업을 살펴보겠습니다. math현재 디렉터리의 절대 경로를 가리키는 기호 링크를 현재 디렉터리에 생성합니다. 주의 깊게 확인해 봅시다:

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

이제 일부 파일을 추가 $PWD하고 이동을 수행하면 다음과 같습니다.

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

기본적으로 가리키는 전체 디렉토리를 대상으로 이동합니다 math. 현재 디렉터리를 가리키므로 지정한 위치로 정확하게 이동합니다. 목적지 바로 위에 있는 경우 흥미로운 루핑 문제가 발생할 수 있습니다.

관련 정보