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

創(chuàng)新互聯(lián)是專業(yè)的福清網(wǎng)站建設(shè)公司,福清接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行福清網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
符號(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
Bash 腳本實(shí)例:獲取符號(hào)鏈接的目標(biāo)位置Bash 腳本實(shí)例:獲取符號(hào)鏈接的目標(biāo)位置
實(shí)例二:創(chuàng)建目錄的軟連接
以下命令在我們的主目錄中創(chuàng)建指向/var/log目錄的軟鏈接:
[root@localhost ~]# ln -s /var/log ~/log
Bash 腳本實(shí)例:獲取符號(hào)鏈接的目標(biāo)位置Bash 腳本實(shí)例:獲取符號(hào)鏈接的目標(biāo)位置
如何刪除符號(hào)鏈接
要?jiǎng)h除符號(hào)鏈接,我們使用命令 unlink 后跟要?jiǎng)h除的符號(hào)鏈接的路徑。
[root@localhost ~]# unlink ~/log
下圖可看到,log的快捷方式?jīng)]有了。 注意:如果刪除目標(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/bash
read -p "Provide the directory to evaluate: " target_dir
cd $target_dir
links=$(find . -maxdepth 1 -type l -ls | awk '{print $11}')
for link in $links
do
echo "$link -> $(readlink $link)"
done
該腳本首先詢問(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.sh
Provide 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
Bash 腳本實(shí)例:獲取符號(hào)鏈接的目標(biāo)位置Bash 腳本實(shí)例:獲取符號(hào)鏈接的目標(biāo)位置
總結(jié)
本文介紹了如何在 Linux 中使用符號(hào)鏈接的基礎(chǔ)知識(shí)。然后我們創(chuàng)建了一個(gè)簡(jiǎn)單的腳本來(lái)查找指定目錄中的符號(hào)鏈接并顯示它們的源和目標(biāo)位置。
網(wǎng)頁(yè)題目:Linux下符號(hào)鏈接的具體使用方法
網(wǎng)站路徑:http://m.5511xx.com/article/dppojej.html


咨詢
建站咨詢
