您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Linux中的硬鏈接和軟鏈接介紹,以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
硬鏈接
首先我們來看硬鏈接,我們來用php中變量的引用來對比吧。
$a = 100; $b = &$a;
可以將$a看做是一個文件,而$b看出是$a文件的硬鏈接。現在的作用是,不管是$a或$b作了修改,都會影響到對方。
那現在將其中一個文件刪除,另一個文件還存在嗎?
unset($b);
即使刪除了$b文件,$a文件還是存在的。
下面,我們來看看是不是和上面所說一樣。創建硬鏈接的命令如下:
ln 源文件 鏈接文件
目前系統有一個1.php文件,現在我們來給他創建個硬鏈接。
# ln 1.php 2.php # cat 1.php <?php $a = 100; $b = &$a; $b = 1000; echo $a;
現在我們來修改下2.php文件,看看1.php文件是否也會被修改。
# echo -e '\n?>' >> 2.php # cat 1.php <?php $a = 100; $b = &$a; $b = 1000; echo $a; ?>
可以看到,修改了2.php,1.php文件也會被修改。現在我們來刪除2.php文件,看看1.php文件是否還存在。
# rm -f 2.php # ll 1.php -rw-r--r-- 1 root root 52 Jun 20 08:05 1.php
可以看到,即使刪除了2.php,1.php文件依舊是存在的。
上面介紹了硬鏈接的作用,下面來說下硬鏈接在使用時候的限制:
不能鏈接目錄
不能跨文件系統來做鏈接
由于以上兩點的限制導致日常使用硬鏈接的機會很少,下面介紹另外一種鏈接——軟鏈接,它沒有上述的限制,所以平時用的很多哦!。
軟鏈接
一般會將軟鏈接和windows系統中的桌面快捷方式來對比,通過創建軟鏈接可以很方便的執行一個命令,而不用去找文件的目錄位置。另外,刪除了軟鏈接文件,源文件依舊存在。但是,如果刪除了源文件,那么鏈接文件就沒有作用了。
軟鏈接分為文件及目錄兩種,下面分別介紹下這兩種鏈接的作用。
給文件做軟鏈接
你有沒有想過,為什么你安裝好了mysql后,不用使用絕對路徑,就可以使用mysql來執行。這里面就是使用到了軟鏈接。
# which mysql /usr/bin/mysql # ll /usr/bin/mysql lrwxrwxrwx 1 root root 26 Nov 4 2019 /usr/bin/mysql -> /usr/local/mysql/bin/mysql
可以看出,該命令的實際地址是/usr/local/mysql/bin/mysql,但是給該文件做了軟鏈接到了/usr/bin/目錄下,所以就不用使用絕對路徑即可調用該命令了。
下面我們自己做一個文件軟鏈接,看是不是這樣的。
首先創建一個文件soft.sh
vim soft #!/bin/bash echo 'study softlink' # chmod u+x soft
然后給該文件創建軟鏈接,看看直接執行該命令是不是可以了
# ln -s /root/soft /usr/bin/ # soft study softlink
給目錄做軟鏈接
首先,我們需要注意的是,做軟鏈接時,目標文件或目錄必須不存在。
下面,我們引出一個場景,該場景非常的常見:
網站文件存放在/www/wwwroot目錄下,隨著系統運行時間越來越差,該目錄越來越大,由于該目錄是和根目錄在同一個分區,根目錄快要寫滿了。而另外一個分區目錄/data還剩99G剩余空間。這時候,不想重新分區,那么需要怎樣做才能使得根目錄所在分區取得解放。
下面,我們使用目錄軟鏈接來解決該問題。首先,在/data目錄下建立wwwroot目錄,然后將/www/wwwroot目錄下所有文件移動到/data/wwwfile下,再刪除/www/wwwroot目錄。最后給/data/wwwfile目錄軟鏈接到/www/wwwroot
mkdir /data/wwwfile mv /www/wwwroot/* /data/wwwfile rm -rf /www/wwwroot ln -s /data/wwwfile /www/wwwroot
現在,我們來測試下問題是否真的解決了。目前根分區使用率為19%,而/data分區使用率為9%。
/dev/vda1 40G 7.4G 33G 19% / /dev/vdb1 500G 43G 458G 9% /data
我們在/www/wwwroot目錄下創建一個2G的大文件,然后看看哪個分區的容量變大了。我們想要的答案是/data分區使用率變高,而根分區不變。
dd if=/dev/zero of=/www/wwwroot/bigfile bs=1G count=2 # 然后看看各分區使用容量的變化 /dev/vda1 40G 7.4G 33G 19% / /dev/vdb1 500G 45G 456G 9% /data
可以看到,根分區可用容量還是33G,但/data分區已經從458G變為了456G,所以說我們解決了問題。
上述就是小編為大家分享的Linux中的硬鏈接和軟鏈接了,看完之后是否對硬鏈接和軟鏈接有進一步的了解呢。如果想了解更多相關內容,請關注億速云行業資訊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。