Linux ln 命令的使用
1.命令簡(jiǎn)介
ln 命令用來(lái)為文件創(chuàng)建鏈接,分為硬鏈接(hard link)和軟鏈接(符號(hào)鏈接,symbolic link)兩種,默認(rèn)創(chuàng)建硬連接,如果要?jiǎng)?chuàng)建軟鏈接須使用 -s 選項(xiàng)。本文介紹的是 GNU 版本的實(shí)現(xiàn),其它版本(如 POSIX 版)實(shí)現(xiàn)可能所有不同。
注意:
(1)硬鏈接不是一個(gè)獨(dú)立的文件,只是一個(gè)文件名。一個(gè)文件可以有多個(gè)文件名,只有將最后一個(gè)文件名從磁盤上刪除,才能把這個(gè)文件刪掉;
(2)軟鏈接可以跨文件系統(tǒng),但硬鏈接不能跨文件系統(tǒng),因?yàn)橛叉溄又皇俏募膭e名,而非獨(dú)立的文件;
(3)不能給目錄建立硬鏈接,因?yàn)橛叉溄舆B接到目錄可會(huì)導(dǎo)致目錄的 inode 與實(shí)體 block 形成環(huán)狀。此時(shí),如果刪除目錄,會(huì)導(dǎo)致目錄實(shí)體 block 無(wú)法被系統(tǒng)訪問(wèn),產(chǎn)生孤立的目錄(從根目錄無(wú)法再訪問(wèn));
(4)創(chuàng)建硬鏈接時(shí),每個(gè)目標(biāo)必須存在。創(chuàng)建軟鏈接時(shí),目標(biāo)文件可以不存在;
(5)軟鏈接是一個(gè)包含了路徑信息的獨(dú)立文件,類似于 Windows 的快捷方式,它的許多屬性依賴于原文件,所以給軟鏈接文件設(shè)置權(quán)限是沒有意義的。
2.命令格式
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)
第一種格式,為指定的目標(biāo)文件建立指定名稱的鏈接,這是最長(zhǎng)使用的格式;
第二種格式,為指定的目標(biāo)文件建立在當(dāng)前目錄建立同名的鏈接;
第三和第四格式,分別為每一個(gè)目標(biāo)文件在指定的目錄下建立同名的鏈接。
3.選項(xiàng)說(shuō)明
長(zhǎng)選項(xiàng)的強(qiáng)制參數(shù)對(duì)于短選項(xiàng)也是強(qiáng)制的。
--backup[=CONTROL] 備份每一個(gè)存在的目標(biāo)文件 -b 類似于 --backup,但不接受參數(shù) -d, -F, --directory 允許超級(jí)用戶嘗試為目錄建立硬鏈接(注意:由于系統(tǒng)限制,即使超級(jí)用戶也可能失敗) -f, ——force 強(qiáng)行建立文件或目錄的鏈接,與鏈接同名的文件或目錄將被覆蓋 -i, ——interactive 覆蓋既有文件之前先詢問(wèn)用戶 -L, --logical 建立硬鏈接時(shí),當(dāng)目標(biāo)文件是軟鏈接時(shí),進(jìn)行解引用,指向軟鏈接的目標(biāo)文件 -n, --no-dereference 把軟鏈接視為一般文件,不進(jìn)行解引用 -P, --physical 建立硬鏈接時(shí),直接指向軟鏈接本身,而不是指向軟鏈接的目標(biāo)文件(默認(rèn)) -r, --relative 創(chuàng)建相對(duì)于鏈接位置的符號(hào)鏈接 -s, --symbolic 建立軟連接,而非硬連接 -S, --suffix=SUFFIX 修改備份文件后綴。用 -b 參數(shù)備份目標(biāo)文件后,備份文件后綴默認(rèn)為 ~ -t, --target-directory=DIRECTORY 指定鏈接文件存放于哪個(gè)目錄 -T, --no-target-directory 將 LINK_NAME 視為鏈接文件而非存放鏈接文件的目錄 -v, ——verbose 顯示指令執(zhí)行過(guò)程 --help 顯示幫助并退出 --version 顯示版本并退出
選項(xiàng) --backup 的參數(shù) CONTROL 控制文件備份后的版本生成方式,可取值如下:
none, nil 不進(jìn)行備份 numbered, t 使用數(shù)字后綴進(jìn)行滾動(dòng)。備份文件名后綴依序遞增 ~1~、 existing, nil 如果有使用數(shù)字后綴則使用數(shù)字,否則使用簡(jiǎn)單的備份方式,即只備份一次 simple, never 只使用簡(jiǎn)單的備份方式
使用選項(xiàng) -s 生成軟鏈接時(shí),將忽略選項(xiàng) -L、-P,建立硬鏈接,默認(rèn)使用 -P 選項(xiàng),將硬鏈接指向軟鏈接本身,相當(dāng)于給軟鏈接起了個(gè)別名。
4.常用示例
(1)給文件 /etc/passwd 建立軟鏈接。
ln -s /etc/passwd passwdSoftLink ll passwdSoftLink lrwxrwxrwx 1 root root 11 Nov 13 22:21 passwdSoftLink -> /etc/passwd
(2)給文件 /etc/passwd 多次建立軟鏈接,軟鏈接的名稱相同,采用數(shù)字表示備份文件的版本號(hào)。多次備份,版本號(hào)將依序遞增。
ln -s --backup=numbered /etc/passwd passwdSoftLink ll passwdSoftLink* lrwxrwxrwx 1 root root 11 Nov 14 10:36 passwdSoftLink -> /etc/passwd lrwxrwxrwx 1 root root 11 Nov 14 10:36 passwdSoftLink.~1~ -> /etc/passwd
(3)給不存在的文件建立軟鏈接。
ln -s nofile nofileSoftLink
使用 ll 命令查看軟鏈接時(shí),軟鏈接名為紅色,且不存在的目標(biāo)文件名以紅底白字在不停地閃爍。
向軟鏈接 nofileSoftLink 寫入內(nèi)容后保存,將會(huì)生成文件 nofile。
(4)給 /etc/passwd 建立硬鏈接。
ln /etc/passwd passwdHardLink ll -i /etc/passwd passwdHardLink 787795 -rw-r--r-- 2 root root 1552 Jan 4 2019 /etc/passwd 787795 -rw-r--r-- 2 root root 1552 Jan 4 2019 passwdHardLink
使用 ll 命令查看兩個(gè)文件時(shí),第一列 inode 號(hào)相同,且第三列硬鏈接數(shù)為 2,表示有兩個(gè)文件名指向文件的數(shù)據(jù)實(shí)體。
(5)給 /etc/passwd 建立同名的軟鏈接且軟鏈接放在當(dāng)前目錄。即使用第三和第四種命令格式為文件建立鏈接。
ln -s /etc/passwd . # 或 ln -s -t . /etc/passwd # 查看 ll passwd lrwxrwxrwx 1 root root 11 Nov 14 10:43 passwd -> /etc/passwd
注意,書寫目標(biāo)文件時(shí),路徑要相對(duì)于目標(biāo)目錄,或者使用絕對(duì)路徑,不然軟鏈接無(wú)法指向目標(biāo)文件。
(6)創(chuàng)建的鏈接文件有同名的文件時(shí),強(qiáng)制覆蓋,不進(jìn)行備份。
ln -sf /etc/passwd passwdSoftLink
(7)修改軟鏈接指向新的目標(biāo)文件。將軟鏈接 passwdSoftLink 指向 /usr/bin/passwd,重新建立軟鏈接,強(qiáng)制覆蓋原有的軟鏈接 passwdSoftLink 即可。
ln -sf /usr/bin/passwd passwdSoftLink ll passwdSoftLink lrwxrwxrwx 1 root root 15 Nov 14 10:52 passwdSoftLink -> /usr/bin/passwd
以上就是Linux ln 命令的使用的詳細(xì)內(nèi)容,更多關(guān)于Linux ln 命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Linux mysql-5.6如何實(shí)現(xiàn)重置root密碼
這篇文章主要介紹了Linux mysql-5.6如何實(shí)現(xiàn)重置root密碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Centos 通過(guò) Nginx 和 vsftpd 構(gòu)建圖片服務(wù)器的教程(圖文)
本篇文章主要介紹了Centos 通過(guò) Nginx 和 vsftpd 構(gòu)建圖片服務(wù)器的教程(圖文),具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08關(guān)于crontab定時(shí)任務(wù)命令解讀
這篇文章主要介紹了關(guān)于crontab定時(shí)任務(wù)命令的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Linux內(nèi)核宏container_of的深度剖析
今天小編就為大家分享一篇關(guān)于Linux內(nèi)核宏container_of的深度剖析,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02CenterOS 中安裝Redis及開機(jī)啟動(dòng)設(shè)置詳解
這篇文章主要介紹了CenterOS 中安裝Redis及開機(jī)啟動(dòng)設(shè)置詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12ubuntu下安裝Python多版本的方法及注意事項(xiàng)
倒霉的今天我居然把ubuntu系統(tǒng)給完壞了,因?yàn)槲野裵ython3卸載了,然后就哦了,下面小編給大家分享下ubuntu下管理python的多個(gè)版本的方法,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看下吧2016-10-10mac下配置和訪問(wèn)阿里云服務(wù)器(Ubuntu系統(tǒng))的圖文教程
這篇文章主要介紹了mac下配置和訪問(wèn)阿里云服務(wù)器(Ubuntu系統(tǒng))的圖文教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-01-01詳解linux系統(tǒng)目錄sys,tmp,usr,var!
在本篇文章里小編給大家詳解了關(guān)于linux系統(tǒng)目錄,sys,tmp,usr,var!的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們參考下。2019-06-06Linux防火墻firewall設(shè)置端口訪問(wèn)限制方式
在Linux系統(tǒng)中,firewall工具可以幫助用戶配置防火墻規(guī)則,實(shí)現(xiàn)對(duì)端口的精確限制,通過(guò)簡(jiǎn)單的命令,用戶可以開放或移除單個(gè)端口、批量處理端口規(guī)則、查看所有開放端口、允許或禁止特定IP或網(wǎng)段訪問(wèn)某端口等操作2024-10-10解決Nginx + PHP(FastCGI)遇到的502 Bad Gateway錯(cuò)誤
昨日,有朋友問(wèn)我,他將Web服務(wù)器換成Nginx 0.6.31 + PHP 4.4.7(FastCGI)后,有時(shí)候訪問(wèn)會(huì)出現(xiàn)“502 Bad Gateway”錯(cuò)誤,如何解決。2008-12-12