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

創(chuàng)新互聯(lián)是專業(yè)的福清網站建設公司,福清接單;提供成都網站制作、成都網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行福清網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
符號鏈接的類型
主要有兩種類型的符號鏈接,即:
**硬鏈接:**硬鏈接是指向文件系統(tǒng)中的文件或目錄的直接指針。硬鏈接只能在與目標文件相同的文件系統(tǒng)中創(chuàng)建。
**軟連接:**軟鏈接是文件或目錄的間接快捷方式,可以存在于文件系統(tǒng)中的任何位置。軟鏈接可以指向不同文件系統(tǒng)中的文件。
如何創(chuàng)建符號鏈接
要在 Linux 中創(chuàng)建符號鏈接,我們使用 ln 命令。執(zhí)行不帶選項的命令會創(chuàng)建指向指定目標文件的硬鏈接。
ln 命令的一般語法是:
ln [OPTIONS]
如要創(chuàng)建軟鏈接,需要添加 -s 選項:
ln -s [OPTION]
實例一:創(chuàng)建文件的軟連接
以下命令在我們的主目錄中創(chuàng)建指向/var/log/audit/audit.log文件的軟鏈接:
[root@localhost ~]# ln -s /var/log/audit/audit.log ~/audit.log
Bash 腳本實例:獲取符號鏈接的目標位置Bash 腳本實例:獲取符號鏈接的目標位置
實例二:創(chuàng)建目錄的軟連接
以下命令在我們的主目錄中創(chuàng)建指向/var/log目錄的軟鏈接:
[root@localhost ~]# ln -s /var/log ~/log
Bash 腳本實例:獲取符號鏈接的目標位置Bash 腳本實例:獲取符號鏈接的目標位置
如何刪除符號鏈接
要刪除符號鏈接,我們使用命令 unlink 后跟要刪除的符號鏈接的路徑。
[root@localhost ~]# unlink ~/log
下圖可看到,log的快捷方式沒有了。 注意:如果刪除目標文件或目錄,請記得刪除符號鏈接,因為符號鏈接不會隨著文件的刪除而刪除。
如何獲取符號鏈接的目標文件或目錄
每個符號鏈接都會指向一個目標文件或目錄(除非損壞)。要獲取符號鏈接的目標文件/目錄,我們使用readlink命令顯示符號鏈接的目標。
例如,要獲取我們在前面部分中創(chuàng)建的 audit.log 文件的目標,我們可以執(zhí)行以下操作:
[root@localhost ~]# readlink ~/audit.log
/var/log/audit/audit.log
獲取符號鏈接的 Bash 腳本
我們可以創(chuàng)建一個簡單的 bash 腳本,該腳本接受路徑并列出所有符號鏈接及其目標文件或目錄:
[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
該腳本首先詢問用戶要獲取的目錄。然后,腳本轉到提供的目錄并找到目錄中的所有符號鏈接,并將輸出傳遞給awk命令。
awk 輸出并定位符號鏈接,并將它們保存到一個名為 links 的變量中。
然后我們創(chuàng)建一個循環(huán),抓取links變量中的每個鏈接,并使用 readlink 命令獲取它們的目標位置。
最后,顯示符號鏈接和目標目錄。下面是一個示例輸出:
[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 腳本實例:獲取符號鏈接的目標位置Bash 腳本實例:獲取符號鏈接的目標位置
總結
本文介紹了如何在 Linux 中使用符號鏈接的基礎知識。然后我們創(chuàng)建了一個簡單的腳本來查找指定目錄中的符號鏈接并顯示它們的源和目標位置。
文章題目:Linux下符號鏈接的具體使用方法
轉載注明:http://fisionsoft.com.cn/article/dppojej.html


咨詢
建站咨詢
