首頁 > 軟體

Linux中怎麼覆蓋普通文字檔案和目錄軟連線

2020-06-16 17:55:54

今天想在Linux下覆蓋一個目錄的軟連線,遇到點問題,所以總結了下發表這篇博文:

如果把原來的軟連線刪掉,重新建立一個軟連線,那麼inode節點會有變化,這不是我想要的,所以做了如下測試:

先看普通文字檔案:覆蓋文字檔案的軟連線就是用ln的-sf引數,-f是強制移除舊檔案

[root@linuxidc tmp]# touch {1,2}
[root@linuxidc tmp]# ln -s 1 1.sym
[root@linuxidc tmp]# ll
total 12
-rw-r--r-- 1 root root 0 Jan 9 10:51 1
lrwxrwxrwx 1 root root 1 Jan 9 10:51 1.sym -> 1
-rw-r--r-- 1 root root 0 Jan 9 10:51 2
[root@linuxidc tmp]# ls -i 1.sym
622597 1.sym
 [root@linuxidc tmp]# ln -s 2 1.sym
 ln: creating symbolic link `1.sym' to `2': File exists
 [root@linuxidc tmp]# ln -sf 2 1.sym
 [root@linuxidc tmp]# ls -i 1.sym
 622597 1.sym
 [root@linuxidc tmp]# rm -f 1.sym
 [root@linuxidc tmp]# ln -s 2 1.sym
 [root@linuxidc tmp]# ls -i 1.sym
 622596 1.sym
 [root@linuxidc tmp]#

覆蓋目錄的軟連線:ln -snf  ,-n講目標檔案看成是普通文字檔案,目標檔案後面不要加/,否則加-n也不管用了。

[root@linuxidc tmp]# mkdir {a,b}
[root@linuxidc tmp]# ln -s a a.sym
[root@linuxidc tmp]# ll
total 32
-rw-r--r-- 1 root root 0 Jan 9 10:51 1
-rw-r--r-- 2 root root 0 Jan 9 10:51 1.sym -> 2
-rw-r--r-- 2 root root 0 Jan 9 10:51 2
drwxr-xr-x 2 root root 4096 Jan 9 11:02 a
lrwxrwxrwx 1 root root 1 Jan 9 11:02 a.sym -> a
 drwxr-xr-x 2 root root 4096 Jan 9 11:02 b
 [root@linuxidc tmp]# ls -di a.sym
 622599 a.sym
 [root@linuxidc tmp]# ln -s b/ a.sym
 [root@linuxidc tmp]# ll a.sym/
 total 4
 lrwxrwxrwx 1 root root 2 Jan 9 11:03 b -> b/
 [root@linuxidc tmp]# ll
 total 32
 -rw-r--r-- 1 root root 0 Jan 9 10:51 1
 -rw-r--r-- 2 root root 0 Jan 9 10:51 1.sym -> 2
 -rw-r--r-- 2 root root 0 Jan 9 10:51 2
 drwxr-xr-x 2 root root 4096 Jan 9 11:03 a
 lrwxrwxrwx 1 root root 1 Jan 9 11:02 a.sym -> a
 drwxr-xr-x 2 root root 4096 Jan 9 11:02 b
 [root@linuxidc tmp]# rm -f a.sym/b
 [root@linuxidc tmp]# ln -sf b/ a.sym
 [root@linuxidc tmp]# ll
 total 32
 -rw-r--r-- 1 root root 0 Jan 9 10:51 1
 -rw-r--r-- 2 root root 0 Jan 9 10:51 1.sym -> 2
 -rw-r--r-- 2 root root 0 Jan 9 10:51 2
 drwxr-xr-x 2 root root 4096 Jan 9 11:03 a
 lrwxrwxrwx 1 root root 1 Jan 9 11:02 a.sym -> a
 drwxr-xr-x 2 root root 4096 Jan 9 11:02 b
 [root@linuxidc tmp]# ll a.sym
 lrwxrwxrwx 1 root root 1 Jan 9 11:02 a.sym -> a
 [root@linuxidc tmp]# ll a.sym/
 total 4
 lrwxrwxrwx 1 root root 2 Jan 9 11:03 b -> b/
 [root@linuxidc tmp]# rm -f a.sym/b
 [root@linuxidc tmp]# ln -snf b/ a.sym
 [root@linuxidc tmp]# ll
 total 32
 -rw-r--r-- 1 root root 0 Jan 9 10:51 1
 -rw-r--r-- 2 root root 0 Jan 9 10:51 1.sym -> 2
 -rw-r--r-- 2 root root 0 Jan 9 10:51 2
 drwxr-xr-x 2 root root 4096 Jan 9 11:04 a
 lrwxrwxrwx 1 root root 2 Jan 9 11:04 a.sym -> b/
 drwxr-xr-x 2 root root 4096 Jan 9 11:02 b
 [root@linuxidc tmp]# ls -di a.sym
 622599 a.sym

ln 軟連線目錄  http://www.linuxidc.com/Linux/2013-01/77499.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-08/121285.htm


IT145.com E-mail:sddin#qq.com