如果不小心移動了後面跟著「/」的軟連結會怎樣?

如果不小心移動了後面跟著「/」的軟連結會怎樣?

我創建了一個到當前目錄的軟鏈接,

$ ln -s "$PWD" math

然後我想將其移動到另一個目錄。

$ mv math/ ~/dirlinks/maths/

然後我意識到我應該

$ mv math ~/dirlinks/maths/

所以我在完成之前按 ctrl-c 取消該過程。

math我發現下面有一個dir ~/dirlinks/maths/,而且好像下面的文件.都被複製到了~/dirlinks/maths/math,因為我看到下面的文件~/dirlinks/maths/math也出現在下面.。但我不明白,因為它mv不是cp。當我跑步時發生了什麼事mv 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到目的地。由於它指向當前目錄,因此它完全移動到您指定的位置。如果您碰巧位於目的地正上方的某個地方,則可能會導致有趣的循環問題。

相關內容