一天一個shell命令 linux文件操作系列-ln命令詳解
里提示一下:ubuntu的翻譯很多都是字面直譯,存在很多問題,所以建議大家參照我這里的解釋。當然本來也是有些趕文的嫌疑,望指正。
經常在linux上操作,有在不同的目錄下切換某幾個固定的命令,或者修改幾個固定的文件,這時候,如果能在一個目錄下就操作他們,會是一件多么輕松的事情。我們來看看鏈接命令ln
全稱
ln 全稱是link 顧名思義,這是一個建立一個鏈接。怎么去理解呢?它的功能類似于Mac OS的別名或者Windows的快捷方式, 刪除不會影響文件本身。
說明:(直接看看斜體,就行了)
鏈接可分為兩種:硬鏈接(hard link)與軟鏈接(symbolic link),
不論是那種類型的鏈接, 都提供了一種雙向引用的手段 -- 也就是說, 不管你用文件的那個名字對文件內容進行修改, 你修改的效果都即會反映到原始名字的文件, 也會反映到鏈接名字的文件.當你工作在更高層次的時候, 才會發(fā)生軟硬鏈接的不同. 硬鏈
接的優(yōu)點是, 原始文件與鏈接文件之間是相互獨立的 -- 如果你刪除或者重命名老文件, 那么這種操作將不會影響硬鏈接的文件, 硬鏈接的文件講還是原來文件的內容.
然而如果你使用軟鏈接的, 當你把老文件刪除或重命名后, 軟鏈接將再也找不到原來文件的內容了. 而軟鏈接的優(yōu)點是它可以跨越文件系統(tǒng)(因為它只不過是文件名的一個引用, 而并不是真正的數據). 與硬鏈接的另一個不同是, 一個符號鏈接可以指向一個
目錄.
例子:
1.$ln file.txt file.copy
file.copy就是 file.txt的一個快捷方式
查看—help
用法:ln [選項]... [-T] 目標 鏈接名 (第一種格式)
或:ln [選項]... 目標 (第二種格式)
或:ln [選項]... 目標... 目錄 (第三種格式)
或:ln [選項]... -t 目錄 目標... (第四種格式)
在第一種格式中,創(chuàng)建指定名稱且指向指定目標鏈接。
在第二種格式中,在當前目錄創(chuàng)建指向目標位置的鏈接。
在第三、四種格式中,在指定目錄中創(chuàng)建指向指定目標的鏈接。
默認創(chuàng)建硬鏈接,當使用--symbolic 時創(chuàng)建符號鏈接。
當創(chuàng)建硬鏈接時每個指定的目標都必須存在。符號鏈接可以指向任意的位置,
當鏈接解析正常時,將其解析為一個與其父目錄關聯的鏈接。
長選項必須使用的參數對于短選項時也是必需使用的。
--backup[=CONTROL] 為每個已存在的目標文件創(chuàng)建備份文件
-b 類似--backup, 但不接受任何參數
-d, -F, --directory 創(chuàng)建指向目錄的硬鏈接(只適用于超級用戶)
-f, --force 強行覆蓋任何已存在的鏈接文件
-i, --interactive 覆蓋鏈接文件前進行確認
-L, --logical 將硬鏈接創(chuàng)建為符號鏈接引用
-n, --no-dereference 如果目的地是一個鏈接至某目錄的符號鏈接,會將
該符號鏈接當作普通文件處理,先將該已存在的鏈
接備份或覆蓋
-s, --symbolic 創(chuàng)建符號鏈接(軟鏈接)而非硬鏈接
-S, --suffix=后綴 自行指定鏈接文件的后綴
-t, --target-directory=目錄 在指定目錄中創(chuàng)建鏈接
-T, --no-target-directory 將鏈接名稱當作普通文件
-v, --verbose 鏈接前打印相關信息
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
備份文件的后綴為"~",除非以--suffix 選項或是SIMPLE_BACKUP_SUFFIX
環(huán)境變量指定。版本控制的方式可通過--backup 選項或VERSION_CONTROL 環(huán)境
變量來選擇。以下是可用的變量值:
使用 -s 選項會忽略 -L 和 -P。
否則當源為一個符號鏈接(默認-P)時,會由最后指定的一個選項來控制行為。
none, off 不進行備份(即使使用了--backup 選項)
numbered, t 備份文件加上數字進行排序
existing, nil 若有數字的備份文件已經存在則使用數字,否則使用普通方式備份
simple, never 永遠使用普通方式備份
解讀:
1. -s
創(chuàng)建軟鏈接 ln -s file.txt /${dir}/file.copy
2. -f -b
-f 實際上為強行覆蓋已存在的硬鏈接(注意:有的ubuntu的翻譯有誤)
-b 指覆蓋前備份
3. –i
覆蓋文件前提問
4. –S
與-s存在著本質區(qū)別。。這里是給他起后綴名(window里可能叫擴展名,但linux中不是以這種方式區(qū)別文件)
實戰(zhàn):
1. 現在我需要配置jdk,tomcat,并且有多個節(jié)點,還有一些配置文件在不同的目錄下。有時候,會用到一些遠程的工具集。 工作時間有點長,慢慢發(fā)現很多時間在切換目錄上,于是,我把所有的快捷方式,全部集中的幾個文件夾,并且進行歸類,然后某些簡單操作用遠程或者共享,在win下操作.
2. 建立軟鏈接
$ln –s file.txt /${dir}/
3. 可以通過后綴名提示該文件是軟連接
$ln –s file.txt /${dir}/file -v -S.url
-v 提示文件變化, -S.url表示了file的后綴名 -s表示是軟連接
4. 如果你總是遇到很多類似名稱,覆蓋前需要提示
$ln -f 覆蓋前不提示
$ln -i 覆蓋前提示
中文介紹
用法:ln [選項]... [-T] 目標 鏈接名 (第一種格式) 或:ln [選項]... 目標 (第二種格式) 或:ln [選項]... 目標... 目錄 (第三種格式) 或:ln [選項]... -t 目錄 目標... (第四種格式) 在第一種格式中,創(chuàng)建指定名稱且指向指定目標鏈接。 在第二種格式中,在當前目錄創(chuàng)建指向目標位置的鏈接。 在第三、四種格式中,在指定目錄中創(chuàng)建指向指定目標的鏈接。 默認創(chuàng)建硬鏈接,當使用--symbolic 時創(chuàng)建符號鏈接。 當創(chuàng)建硬鏈接時每個指定的目標都必須存在。符號鏈接可以指向任意的位置, 當鏈接解析正常時,將其解析為一個與其父目錄關聯的鏈接。 長選項必須使用的參數對于短選項時也是必需使用的。 --backup[=CONTROL] 為每個已存在的目標文件創(chuàng)建備份文件 -b 類似--backup,但不接受任何參數 -d, -F, --directory 創(chuàng)建指向目錄的硬鏈接(只適用于超級用戶) -f, --force 強行刪除任何已存在的目標文件 -i, --interactive 刪除文件前進行確認 -L, --logical 將硬鏈接創(chuàng)建為符號鏈接引用 -n, --no-dereference 如果目的地是一個鏈接至某目錄的符號鏈接,會將 該符號鏈接當作普通文件處理,先將該已存在的鏈 接備份或刪除 -s, --symbolic 創(chuàng)建符號鏈接而非硬鏈接 -S, --suffix=后綴 自行指定備份文件的后綴 -t, --target-directory=目錄 在指定目錄中創(chuàng)建鏈接 -T, --no-target-directory 將鏈接名稱當作普通文件 -v, --verbose 鏈接前先列出每個文件的名稱 --help 顯示此幫助信息并退出 --version 顯示版本信息并退出 備份文件的后綴為"~",除非以--suffix 選項或是SIMPLE_BACKUP_SUFFIX 環(huán)境變量指定。版本控制的方式可通過--backup 選項或VERSION_CONTROL 環(huán)境 變量來選擇。以下是可用的變量值: 使用 -s 選項會忽略 -L 和 -P。 否則當源為一個符號鏈接(默認-P)時,會由最后指定的一個選項來控制行為。 none, off 不進行備份(即使使用了--backup 選項) numbered, t 備份文件加上數字進行排序 existing, nil 若有數字的備份文件已經存在則使用數字,否則使用普通方式備份 simple, never 永遠使用普通方式備份
相關文章
Linux下使用Shell腳本實現ftp的自動上傳下載的代碼小結
如何實現在ftp自動上傳下載文件腳本呢?想必還有很多朋友都不太了解吧,下面是ftp自動上傳下載文件腳本方法,希望對朋友們有些幫助2013-02-02Shell循環(huán)語句的使用(for循環(huán)、while循環(huán)、until循環(huán))
本文主要介紹了Shell循環(huán)語句的使用(for循環(huán)、while循環(huán)、until循環(huán)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06Shell腳本配合iptables屏蔽來自某個國家的IP訪問
這篇文章主要介紹了Shell腳本配合iptables屏蔽來自某個國家的IP訪問,本文利用IPdeny的IP數據,然后用Shell腳本導入iptables實現屏蔽IP訪問,需要的朋友可以參考下2015-04-04