"/" 뒤에 소프트 링크를 실수로 이동하면 어떻게 되나요?

"/" 뒤에 소프트 링크를 실수로 이동하면 어떻게 되나요?

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

$ 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기본적으로 가 가리키는 전체 디렉토리를 대상으로 이동합니다 . 현재 디렉터리를 가리키므로 지시한 위치로 완전히 이동됩니다. 목적지 바로 위 어딘가에 있었다면 흥미로운 루핑 문제가 발생할 수 있었습니다.

관련 정보