根据手册页面:
man ln -f, --force remove existing destination files
所以据我了解,如果我想重新创build一个目标目录/文件的新链接
我可以干脆
ln -s -f some_directory new_link
例如
[u@hw]# mkdir dir1 [u@hw]# ln -s dir1 link [u@hw]# ls -l drwxr-xr-x 2 root root 4096 Mar 16 20:26 dir1 lrwxrwxrwx 1 root root 4 Mar 16 20:27 link -> dir1 [u@hw]# ln -s -f dir1 new_link
现在我接受,看到new_link现在指向dir1而“链接”不存在,但链接仍然指向dir1也?
如何重新创build新的链接,同时在一个命令中删除旧链接?
( 我不想用rm命令 )
[u@hw]# ls -l drwxr-xr-x 2 root root 4096 Mar 16 20:26 dir1 lrwxrwxrwx 1 root root 4 Mar 16 20:27 link -> dir1 lrwxrwxrwx 1 root root 4 Mar 16 20:28 new_link -> dir1
其他不同的例子
# # mkdir dir # # ln -s dir link # # mv dir dir_new # ls -l total 32 drwxr-xr-x 2 root root 117 Mar 16 21:44 dir_new lrwxrwxrwx 1 root root 3 Mar 16 21:44 link -> dir # ln -s -f dir_new link ln: cannot create link: File exists
是否有可能更新当前链接指向新的目录/文件
(没有得到文件存在?),
或强制重新build立在不同目录的链接?
-f选项允许您用新链接覆盖目标文件,即带有创build链接名称的文件。 它不检查同一目录中的其他链接。
例:
$ touch file1 $ touch file2 $ ln -s file1 link1 $ ls -l total 8 -rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file1 -rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file2 lrwxr-xr-x 1 jenny staff 5 Mar 16 21:13 link1 -> file1 $ ln -s file2 link1 ln: link1: File exists $ ln -s -f file2 link1 $ ls -l total 8 -rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file1 -rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file2 lrwxr-xr-x 1 jenny staff 5 Mar 16 21:14 link1 -> file2
如果你只是想要移动链接的名称,而不是被称为link1它应该被称为newlink ,只要移动它:
$ mv link1 newlink $ ls -l total 8 -rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file1 -rw-r--r-- 1 jenny staff 0 Mar 16 21:13 file2 lrwxr-xr-x 1 jenny staff 5 Mar 16 21:14 newlink -> file2
如果你使用目录而不是文件,你需要添加选项-n以及-f :
$ ls -l total 16 drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir1 drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir2 $ ln -s dir1 link1 $ ls -l total 20 drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir1 drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir2 lrwxrwxrwx 1 jenny jenny 4 Mar 18 10:37 link1 -> dir1 $ ln -s -n -f dir2 link1 $ ls -l total 20 drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir1 drwxrwxr-x 2 jenny jenny 4096 Mar 18 10:37 dir2 lrwxrwxrwx 1 jenny jenny 4 Mar 18 10:38 link1 -> dir2
mv是primefaces的,并且会按照我所能说的去做你想要的:
mv link new_link