ln是linux中又一個很是重要命令,它的功能是爲某一個文件在另一個位置創建一個同步的連接.當咱們須要在不一樣的目錄,用到相同的文件時,咱們不須要在每個須要的目錄下都放一個必須相同的文件,咱們只要在某個固定的目錄,放上該文件,而後在 其它的目錄下用ln命令連接(link)它就能夠,沒必要重複的佔用磁盤空間。linux
ln [參數][源文件或目錄][目標文件或目錄]
Linux文件系統中,有所謂的連接(link),
咱們能夠將其視爲檔案的別名,而連接又可分爲兩種 :
硬連接(hard link)與軟連接(symbolic link),
硬連接的意思是一個檔案能夠有多個名稱,
而軟連接的方式則是產生一個特殊的檔案,該檔案的內容是指向另外一個檔案的位置。
硬連接是存在同一個文件系統中,而軟連接卻能夠跨越不一樣的文件系統。
1.軟連接,以路徑的形式存在。相似於Windows操做系統中的快捷方式 2.軟連接能夠 跨文件系統 ,硬連接不能夠 3.軟連接能夠對一個不存在的文件名進行連接 4.連接能夠對目錄進行連接 軟連接就至關於windows的的快捷方式,使用場景: 1.在文件系統中多處共享同一個較大文件時,使用軟連接就能夠避免建立多個副本。 2.維護動態庫文件的版本時,使用軟連接,在升級庫文件後,只需修改軟連接的源文件,而使用該庫的程序則不須要修改。 使用原文件的絕對路徑建立的軟連接,不會隨着軟連接路徑改動而失效!因此建議使用原文件絕對路徑建立軟連接。這時候的軟連接纔算得上是真正意義上至關於Windows的快捷方式,一旦生成到處可用
1.硬連接,以文件副本的形式存在。但不佔用實際空間。 2.不容許給目錄建立硬連接 3.硬連接只有在同一個文件系統中才能建立 4.硬連接說白了是一個指針,指向文件索引節點,系統並不爲它從新分配inode。源文件和硬連接文件都是指向同一塊磁盤空間的!經過使用硬連接可達到備份數據(實際是備份節點)的效果!
第一,ln命令會保持每一處連接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發生相同的變化; 第二,ln的連接又分軟連接和硬連接兩種, 軟連接就是ln –s 源文件 目標文件,它只會在你選定的位置上生成一個文件的鏡像,不會佔用磁盤空間, 硬連接 ln 源文件 目標文件,沒有參數-s, 它會在你選定的位置上生成一個和源文件大小相同的文件, 不管是軟連接仍是硬連接,文件都保持同步變化。 ln指令用在連接文件或目錄,如同時指定兩個以上的文件或目錄, 且最後的目的地是一個已經存在的目錄,則會把前面指定的全部文件或目錄複製到該目錄。 若同時指定多個文件或目錄,且最後的目的地並不是是一個已存在的目錄,則會出現錯誤信息。
必要參數 | 描述 |
---|---|
-b | 刪除,覆蓋之前創建的連接 |
-d | 容許超級用戶製做目錄的硬連接 |
-f | 強制執行 |
-i | 交互模式,文件存在則提示用戶是否覆蓋 |
-n | 把符號連接視爲通常目錄 |
-s | 軟連接(符號連接) |
-v | 顯示詳細的處理過程 |
選擇參數 | 描述 |
---|---|
-S | 「-S<字尾備份字符串> 」或 「--suffix=<字尾備份字符串>」 |
-V | 「-V<備份方式>」或「--version-control=<備份方式>」 |
--help | 顯示幫助信息 |
--version | 顯示版本信息 |
命令:vim
ln -s 2018.log link2018
輸出:windows
zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ls 2018.log zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ln -s 2018.log link2018 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ls 2018.log link2018 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ll 總用量 12 drwxrwxr-x 3 zbk zbk 4096 10月 23 11:53 ./ drwxrwxr-x 6 zbk zbk 4096 10月 19 18:22 ../ -rw-r--r-- 1 zbk zbk 0 10月 23 11:53 2018.log drwxrwxr-x 2 zbk zbk 4096 10月 18 17:42 .idea/ lrwxrwxrwx 1 zbk zbk 8 10月 23 11:53 link2018 -> 2018.log
說明:centos
修改源文件2018.log內容,其軟硬連接內容均會同步修改ide
zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cat ln2018 我是log zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cat 2018.log 我是log zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ vim 2018.log zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cat 2018.log 我是log1 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cat ln2018 我是log1 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cat link2018 我是log1
演示以下:idea
zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ls 2018.log link2018 ln2018 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ll 總用量 20 drwxrwxr-x 3 zbk zbk 4096 10月 23 12:04 ./ drwxrwxr-x 6 zbk zbk 4096 10月 19 18:22 ../ -rw-r--r-- 2 zbk zbk 11 10月 23 12:04 2018.log drwxrwxr-x 2 zbk zbk 4096 10月 18 17:42 .idea/ lrwxrwxrwx 1 zbk zbk 8 10月 23 12:00 link2018 -> 2018.log -rw-r--r-- 2 zbk zbk 11 10月 23 12:04 ln2018 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ rm -rf 2018.log zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ll 總用量 16 drwxrwxr-x 3 zbk zbk 4096 10月 23 12:57 ./ drwxrwxr-x 6 zbk zbk 4096 10月 19 18:22 ../ drwxrwxr-x 2 zbk zbk 4096 10月 18 17:42 .idea/ lrwxrwxrwx 1 zbk zbk 8 10月 23 12:00 link2018 -> 2018.log -rw-r--r-- 1 zbk zbk 11 10月 23 12:04 ln2018 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ touch 2018.log zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ll 總用量 16 drwxrwxr-x 3 zbk zbk 4096 10月 23 12:57 ./ drwxrwxr-x 6 zbk zbk 4096 10月 19 18:22 ../ -rw-r--r-- 1 zbk zbk 0 10月 23 12:57 2018.log drwxrwxr-x 2 zbk zbk 4096 10月 18 17:42 .idea/ lrwxrwxrwx 1 zbk zbk 8 10月 23 12:00 link2018 -> 2018.log -rw-r--r-- 1 zbk zbk 11 10月 23 12:04 ln2018 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ vim 2018.log zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cat 2018.log 2018log日誌 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cat link2018 2018log日誌 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cat ln2018 我是log1 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$
說明:spa
演示以下:操作系統
zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ls 2018.log link2018 ln2018 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ mkdir test zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ls 2018.log link2018 ln2018 test zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ln 2018.log test zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ls 2018.log link2018 ln2018 test zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cd test/ zbk@zbk-virtual-machine:~/PycharmProjects/my_test/test$ ls 2018.log zbk@zbk-virtual-machine:~/PycharmProjects/my_test/test$ vi 2018.log zbk@zbk-virtual-machine:~/PycharmProjects/my_test/test$ cat 2018.log 2018log日誌,加1 zbk@zbk-virtual-machine:~/PycharmProjects/my_test/test$ cd .. zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ls 2018.log link2018 ln2018 test zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cat 2018.log 2018log日誌,加1 zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ll 總用量 24 drwxrwxr-x 4 zbk zbk 4096 10月 23 13:31 ./ drwxrwxr-x 7 zbk zbk 4096 10月 23 13:30 ../ -rw-r--r-- 2 zbk zbk 19 10月 23 13:32 2018.log drwxrwxr-x 2 zbk zbk 4096 10月 18 17:42 .idea/ lrwxrwxrwx 1 zbk zbk 8 10月 23 12:00 link2018 -> 2018.log -rw-r--r-- 1 zbk zbk 11 10月 23 12:04 ln2018 drwxr-xr-x 2 zbk zbk 4096 10月 23 13:32 test/ zbk@zbk-virtual-machine:~/PycharmProjects/my_test$
說明:指針
在test目錄中建立了2018.log的硬連接,修改test目錄中的2018.log文件,同時也會同步到源文件
命令:
ln -sv 源目錄 目標目錄
演示以下:
zbk@zbk-virtual-machine:~/PycharmProjects$ ll 總用量 28 drwxrwxr-x 7 zbk zbk 4096 10月 23 13:30 ./ drwxr-xr-x 23 zbk zbk 4096 10月 23 13:32 ../ drwxr-xr-x 9 zbk zbk 4096 10月 22 15:25 FreshOnline/ drwxrwxr-x 6 zbk zbk 4096 10月 19 19:07 FreshOnline_env/ drwxrwxr-x 4 zbk zbk 4096 10月 23 13:31 my_test/ drwxrwxr-x 4 zbk zbk 4096 10月 23 11:52 py3_test/ drwxr-xr-x 2 zbk zbk 4096 10月 23 13:30 test/ zbk@zbk-virtual-machine:~/PycharmProjects$ ln -sv /home/zbk/PycharmProjects/my_test /home/zbk/PycharmProjects/test '/home/zbk/PycharmProjects/test/my_test' -> '/home/zbk/PycharmProjects/my_test' zbk@zbk-virtual-machine:~/PycharmProjects$ ll 總用量 28 drwxrwxr-x 7 zbk zbk 4096 10月 23 13:30 ./ drwxr-xr-x 23 zbk zbk 4096 10月 23 13:32 ../ drwxr-xr-x 9 zbk zbk 4096 10月 22 15:25 FreshOnline/ drwxrwxr-x 6 zbk zbk 4096 10月 19 19:07 FreshOnline_env/ drwxrwxr-x 4 zbk zbk 4096 10月 23 13:31 my_test/ drwxrwxr-x 4 zbk zbk 4096 10月 23 11:52 py3_test/ drwxr-xr-x 2 zbk zbk 4096 10月 23 13:38 test/ zbk@zbk-virtual-machine:~/PycharmProjects$ cd my_test/ zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ ls 2018.log link2018 ln2018 test zbk@zbk-virtual-machine:~/PycharmProjects/my_test$ cd .. zbk@zbk-virtual-machine:~/PycharmProjects$ ls FreshOnline FreshOnline_env my_test py3_test test zbk@zbk-virtual-machine:~/PycharmProjects$ cd test/ zbk@zbk-virtual-machine:~/PycharmProjects/test$ ls my_test zbk@zbk-virtual-machine:~/PycharmProjects/test$ cd my_test zbk@zbk-virtual-machine:~/PycharmProjects/test/my_test$ ls 2018.log link2018 ln2018 test zbk@zbk-virtual-machine:~/PycharmProjects/test/my_test$ cd .. zbk@zbk-virtual-machine:~/PycharmProjects/test$ ls my_test zbk@zbk-virtual-machine:~/PycharmProjects/test$ ll 總用量 8 drwxr-xr-x 2 zbk zbk 4096 10月 23 13:38 ./ drwxrwxr-x 7 zbk zbk 4096 10月 23 13:30 ../ lrwxrwxrwx 1 zbk zbk 32 10月 23 13:38 my_test -> /home/zbk/PycharmProjects/my_test/
說明: