Linux
符號連結命令行為 ln -s
如果我發出
ln -s source.txt symlink.txt
並且symlink.txt
不存在,是自動創建的連結文件被呼叫symlink.txt
還是命令是 noop?如果它是一個 noop,如果我只是創建一個空白
symlink.txt
(touch symlink.txt
) 然後執行上一個命令,操作會按計劃進行嗎?謝謝您的幫助
好吧,這很容易測試:
$ mkdir test; cd test test$ ln -s source.txt symlink.txt test$ ls -l total 0 lrwxrwxrwx 1 ilkkachu ilkkachu 10 Oct 23 18:24 symlink.txt -> source.txt test$ cat symlink.txt cat: symlink.txt: No such file or directory
(將輸出表示為文本對 GNU ls 及其所具有的著色支持並不公平。)
無論是否存在,這些
ln -s
命令都會創建符號連結。但是,嘗試通過符號連結訪問文件是行不通的,因為指向的文件不存在。使用輸出著色,將連結名稱和目標顯示為紅色(或者無論設置是什麼,反正不是實時連結。)symlink.txt``source.txt``ls
如果
symlink.txt
存在,ln -s source.txt symlink.txt
給出一個錯誤,可以預見。用於ln -sf
覆蓋目標文件。
是的,
ln
將創建連結文件,如果文件存在,它將失敗(除非您使用-f
or--force
選項)。順便提一句。執行命令或閱讀手冊頁會給你更快的答案;-)