溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下的符號(hào)鏈接怎么使用

發(fā)布時(shí)間:2022-01-21 12:58:13 來(lái)源:億速云 閱讀:170 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“Linux下的符號(hào)鏈接怎么使用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Linux下的符號(hào)鏈接怎么使用”吧!

Linux下的符號(hào)鏈接怎么使用
在 Linux 底下的連結(jié)檔有兩種,一種是類似 Windows 的快捷方式功能的文件,可以讓你快速的鏈接到目標(biāo)文件(或目錄),這種是軟鏈接; 另一種則是透過(guò)文件系統(tǒng)的 inode 連結(jié)來(lái)產(chǎn)生新檔名,而不是產(chǎn)生新文件!這種稱為硬鏈接 (hard link)。

符號(hào)鏈接的類型

主要有兩種類型的符號(hào)鏈接,即:

**硬鏈接:**硬鏈接是指向文件系統(tǒng)中的文件或目錄的直接指針。硬鏈接只能在與目標(biāo)文件相同的文件系統(tǒng)中創(chuàng)建。

**軟連接:**軟鏈接是文件或目錄的間接快捷方式,可以存在于文件系統(tǒng)中的任何位置。軟鏈接可以指向不同文件系統(tǒng)中的文件。

如何創(chuàng)建符號(hào)鏈接

要在 Linux 中創(chuàng)建符號(hào)鏈接,我們使用 ln 命令。執(zhí)行不帶選項(xiàng)的命令會(huì)創(chuàng)建指向指定目標(biāo)文件的硬鏈接。

ln 命令的一般語(yǔ)法是:

ln [OPTIONS]

如要?jiǎng)?chuàng)建軟鏈接,需要添加 -s 選項(xiàng):

ln -s [OPTION]

實(shí)例一:創(chuàng)建文件的軟連接

以下命令在我們的主目錄中創(chuàng)建指向/var/log/audit/audit.log文件的軟鏈接:

[root@localhost ~]# ln -s /var/log/audit/audit.log ~/audit.log
Linux下的符號(hào)鏈接怎么使用

實(shí)例二:創(chuàng)建目錄的軟連接

以下命令在我們的主目錄中創(chuàng)建指向/var/log目錄的軟鏈接:

[root@localhost ~]# ln -s /var/log ~/log
Linux下的符號(hào)鏈接怎么使用

如何刪除符號(hào)鏈接

要?jiǎng)h除符號(hào)鏈接,我們使用命令 unlink 后跟要?jiǎng)h除的符號(hào)鏈接的路徑。

[root@localhost ~]# unlink ~/log

下圖可看到,log的快捷方式?jīng)]有了。 Linux下的符號(hào)鏈接怎么使用 

注意:如果刪除目標(biāo)文件或目錄,請(qǐng)記得刪除符號(hào)鏈接,因?yàn)榉?hào)鏈接不會(huì)隨著文件的刪除而刪除。

如何獲取符號(hào)鏈接的目標(biāo)文件或目錄

每個(gè)符號(hào)鏈接都會(huì)指向一個(gè)目標(biāo)文件或目錄(除非損壞)。要獲取符號(hào)鏈接的目標(biāo)文件/目錄,我們使用readlink命令顯示符號(hào)鏈接的目標(biāo)。

例如,要獲取我們?cè)谇懊娌糠种袆?chuàng)建的 audit.log 文件的目標(biāo),我們可以執(zhí)行以下操作:

[root@localhost ~]# readlink ~/audit.log/var/log/audit/audit.log

獲取符號(hào)鏈接的 Bash 腳本

我們可以創(chuàng)建一個(gè)簡(jiǎn)單的 bash 腳本,該腳本接受路徑并列出所有符號(hào)鏈接及其目標(biāo)文件或目錄:

[root@localhost ~]# vim symlink.sh#!/bin/bashread -p "Provide the directory to evaluate: " target_dircd $target_dirlinks=$(find . -maxdepth 1 -type l -ls | awk '{print $11}')for link in $linksdo   echo "$link -> $(readlink $link)"done

Linux下的符號(hào)鏈接怎么使用

該腳本首先詢問(wèn)用戶要獲取的目錄。然后,腳本轉(zhuǎn)到提供的目錄并找到目錄中的所有符號(hào)鏈接,并將輸出傳遞給awk命令。

awk 輸出并定位符號(hào)鏈接,并將它們保存到一個(gè)名為 links 的變量中。

然后我們創(chuàng)建一個(gè)循環(huán),抓取links變量中的每個(gè)鏈接,并使用 readlink 命令獲取它們的目標(biāo)位置。

最后,顯示符號(hào)鏈接和目標(biāo)目錄。下面是一個(gè)示例輸出:

[root@localhost ~]# ./symlink.shProvide the directory to evaluate: /etc
./rc.local -> rc.d/rc.local
./redhat-release -> centos-release
./system-release -> centos-release
./init.d -> rc.d/init.d
./rc0.d -> rc.d/rc0.d
./rc1.d -> rc.d/rc1.d
./rc2.d -> rc.d/rc2.d
./rc3.d -> rc.d/rc3.d
./rc4.d -> rc.d/rc4.d
./rc5.d -> rc.d/rc5.d
./rc6.d -> rc.d/rc6.d
./localtime -> ../usr/share/zoneinfo/Asia/Shanghai
./mtab -> ../proc/self/mounts
./yum.conf -> dnf/dnf.conf
./grub2.cfg -> ../boot/grub2/grub.cfg
Linux下的符號(hào)鏈接怎么使用

到此,相信大家對(duì)“Linux下的符號(hào)鏈接怎么使用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI