如何使用'ln'替换符号链接

时间:2016-11-25 13:50:43

标签: linux symlink archlinux ln

ln -sf

不会覆盖给定的符号链接。

+2:34% ls -ld ema*        
drwxr-xr-x 22 b users 4096 Nov 25 14:33 emacs
drwxr-xr-x 22 b users 4096 Nov 25 14:29 emacs-201611181546
-rw-r--r--  1 b users    0 Nov 25 14:34 emacs-current
+2:34% ln -fs emacs-201611181546 emacs-current
+2:34% ls -ld ema*                            
drwxr-xr-x 22 b users 4096 Nov 25 14:33 emacs
drwxr-xr-x 22 b users 4096 Nov 25 14:29 emacs-201611181546
lrwxrwxrwx  1 b users   18 Nov 25 14:34 emacs-current -> emacs-201611181546
+2:34% ln -fs emacs emacs-current 
+2:34% ls -ld ema*               
drwxr-xr-x 22 b users 4096 Nov 25 14:33 emacs
drwxr-xr-x 22 b users 4096 Nov 25 14:34 emacs-201611181546
lrwxrwxrwx  1 b users   18 Nov 25 14:34 emacs-current -> emacs-201611181546

我原本预计

lrwxrwxrwx  1 b users   18 Nov 25 14:34 emacs-current -> emacs

作为解决方法,我可以明确取消链接。

+2:34% unlink emacs-current 
+2:35% ls -ld ema*         
drwxr-xr-x 22 b users 4096 Nov 25 14:33 emacs
drwxr-xr-x 22 b users 4096 Nov 25 14:34 emacs-201611181546
+2:35% ln -fs emacs emacs-current
+2:35% ls -ld ema*               
drwxr-xr-x 22 b users 4096 Nov 25 14:33 emacs
drwxr-xr-x 22 b users 4096 Nov 25 14:34 emacs-201611181546
lrwxrwxrwx  1 b users    5 Nov 25 14:35 emacs-current -> emacs

但我更喜欢

ln

完成这项工作。

这可能吗?怎么样?

2 个答案:

答案 0 :(得分:2)

man ln

SYNOPSIS
  ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)
  ln [OPTION]... TARGET                  (2nd form)
  ln [OPTION]... TARGET... DIRECTORY     (3rd form)
  ln [OPTION]... -t DIRECTORY TARGET...  (4th form)

DESCRIPTION
  In  the  1st form, create a link to TARGET with the name LINK_NAME.
  In the 2nd form, create a link to TARGET in the current directory.
  In the 3rd and 4th forms, create links to each TARGET in DIRECTORY.

您有第3个表单,因为您的链接是指向目录的链接。

答案 1 :(得分:0)

这个小小的shell会话可以找到答案。

从文件开始。

+4:25% touch f1 f2
touch f1 f2
+4:25% mkdir d1 d2
mkdir d1 d2
+4:25% ls -l
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d1
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d2
-rw-r--r-- 1 b users    0 Jun 28 16:25 f1
-rw-r--r-- 1 b users    0 Jun 28 16:25 f2
+4:25% ln -s f1 s0
ln -s f1 s0
+4:26% ls -l
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d1
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d2
-rw-r--r-- 1 b users    0 Jun 28 16:25 f1
-rw-r--r-- 1 b users    0 Jun 28 16:25 f2
lrwxrwxrwx 1 b users    2 Jun 28 16:26 s0 -> f1
+4:26% ln -s f2 s0
ln: failed to create symbolic link 's0': File exists
(1)+4:26% ln -sf f2 s0
+4:26% ls -l
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d1
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d2
-rw-r--r-- 1 b users    0 Jun 28 16:25 f1
-rw-r--r-- 1 b users    0 Jun 28 16:25 f2
lrwxrwxrwx 1 b users    2 Jun 28 16:26 s0 -> f2

符号链接目录。

+4:27% ln -sf d1 s0
+4:27% ls -l
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d1
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d2
-rw-r--r-- 1 b users    0 Jun 28 16:25 f1
-rw-r--r-- 1 b users    0 Jun 28 16:25 f2
lrwxrwxrwx 1 b users    2 Jun 28 16:27 s0 -> d1
+4:27% ln -sf d2 s0

这里没有警告消息!

+4:27% ls -l
drwxr-xr-x 2 b users 4096 Jun 28 16:27 d1
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d2
-rw-r--r-- 1 b users    0 Jun 28 16:25 f1
-rw-r--r-- 1 b users    0 Jun 28 16:25 f2
lrwxrwxrwx 1 b users    2 Jun 28 16:27 s0 -> d1

最后有

+4:27% ln -sfT d2 s0
+4:27% ls -l
drwxr-xr-x 2 b users 4096 Jun 28 16:27 d1
drwxr-xr-x 2 b users 4096 Jun 28 16:25 d2
-rw-r--r-- 1 b users    0 Jun 28 16:25 f1
-rw-r--r-- 1 b users    0 Jun 28 16:25 f2
lrwxrwxrwx 1 b users    2 Jun 28 16:27 s0 -> d2
+4:28%