精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux中的符號鏈接如何創建

dyquk4xk2p3d ? 來源:良許Linux ? 2023-02-11 10:12 ? 次閱讀


什么是 Linux 中的符號鏈接,為什么要使用它? 符號鏈接 Symbolic Links,也稱為 Symlinks 或 soft link,是一種特殊類型的文件,它就像 Windows 中的快捷方式一樣簡單地指向另一個文件或目錄。創建符號鏈接就像創建一個實際文件的別名。 如果您嘗試訪問符號鏈接,您實際上訪問的是符號鏈接指向的目標文件。對鏈接文件內容所做的更改會更改實際目標文件的內容。 如果使用帶選項 -l 的 ls 命令,符號鏈接如下所示:

lrwxrwxrwx 1 linuxmi linuxmi     11  2月 1日 18:58 linuxmi.md -> linuxmi.dat
在大多數 Linux 發行版中,鏈接以與其余條目不同的顏色顯示,以便您可以將鏈接與常規文件和目錄區分開來。

23019bae-a980-11ed-bfe3-dac502259ad0.png


符號鏈接提供了一種組織和共享文件的便捷方式。它們提供對長而混亂的目錄路徑的快速訪問。它們在 Linux 中大量用于鏈接庫。 現在您對符號鏈接有了一些了解,讓我們看看如何創建它們。

如何在 Linux 中創建符號鏈接

要從 link name 創建指向目標文件的符號鏈接,您可以使用帶有 -s 選項的 ln 命令,如下所示:


ln -s target_file link_name
-s 選項在這里很重要。判斷該鏈接為軟鏈接。如果你不使用它,它會創建一個硬鏈接。我將在另一篇文章中解釋軟鏈接和硬鏈接之間的區別。

如何跟蹤符號鏈接

要知道鏈接實際指向哪個真實文件,請使用 realpath 命令:


realpath link_name
還有其他方法可以跟蹤到其源文件的軟鏈接,但 realpath 是最簡單的。

2326357c-a980-11ed-bfe3-dac502259ad0.png

如何刪除符號鏈接

Linux中沒有刪除符號鏈接的特殊命令。您可以使用與刪除文件和目錄相同的 rm 命令。


rm link_name

233dbb98-a980-11ed-bfe3-dac502259ad0.png


刪除鏈接不會刪除它鏈接到的源文件。 您也可以在一個命令中刪除多個符號鏈接:

rm link1 link2
還有一個unlink 命令。但與名字給人的印象不同,unlink 命令并不是專門用來刪除鏈接的。當然,它可以刪除文件、文件夾和鏈接。但是,它有某些限制,即使是刪除鏈接,rm 命令也是更好的選擇。 如果要使用 find 命令列出符號鏈接,可以使用該-type l選項。

關于符號鏈接的注意事項

符號鏈接有時可能會造成混淆,因此您應該注意一些事項。

對鏈接所做的更改反映在原始文件中

畢竟,這就是鏈接的全部目的。您可以通過訪問鏈接來訪問目標文件。您可以通過鏈接對目標文件進行更改。讓我們看例子。 我在 newdir/test_dir 中有一個文件 prog.py。它具有以下屬性:

-rw-r--r-- 1 linuxmi linuxmi 1926  2月 1日 19:08 /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
現在,我將在當前目錄中創建指向該文件的軟鏈接:

┌──(linuxmi?linuxmi)-[~]
└─$ ln -s /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py test

2352beee-a980-11ed-bfe3-dac502259ad0.png

以下是新創建鏈接的屬性:
lrwxrwxrwx 1 linuxmi linuxmi     44  2月 1日 19:24 test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

23675976-a980-11ed-bfe3-dac502259ad0.png

注意到行首的l(是 L,不是一 1)了嗎?如果你熟悉 Linux 中的文件權限,你就會知道'l'表示鏈接,因此它告訴你這個文件實際上是一個鏈接。提個醒,- 表示文件,d 表示目錄。 現在,如果我使用此鏈接更改內容或屬性,同樣會反映在目標文件中。例如,我在軟鏈接上使用 touch 命令,你會注意到它改變了目標文件的時間戳。
┌──(linuxmi?linuxmi)-[~/linuxmi]
└─$ touch test
                                                                           
┌──(linuxmi?linuxmi)-[~/linuxmi]
└─$ ls -l /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
-rw-r--r-- 1 linuxmi linuxmi 1926  2月 1日 19:27 /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

238623e2-a980-11ed-bfe3-dac502259ad0.png

它鏈接到文件還是目錄?你可能不知道!

您如何知道鏈接指向的是文件還是目錄?在您按照路徑訪問目標文件本身之前,您無法知道這一點。

您可以創建指向不存在的文件或目錄的鏈接

是的,這完全有可能。這就是為什么在 Linux 中創建軟鏈接時應該小心的原因。您鏈接到的目標文件不需要存在。創建指向不存在的文件/目錄的鏈接時,您不會收到任何錯誤或警告。 ls 命令仍然有效。僅當您嘗試通過鏈接或單獨訪問目標文件時才會出現錯誤。


┌──(linuxmi?linuxmi)-[~/linuxmi]
└─$ ln -s non_existant_dir link_dir
                                                                           
┌──(linuxmi?linuxmi)-[~/linuxmi]
└─$ less link_dir
link_dir: 沒有那個文件或目錄

239ca5c2-a980-11ed-bfe3-dac502259ad0.png

符號鏈接是使用 777 權限創建的,但它沒有任何意義

您是否注意到符號鏈接上的文件權限?符號鏈接始終使用 777 權限 (rwxrwxrwx) 創建。對于常規文件,這意味著任何人都可以訪問該文件。但鏈接并非如此。

lrwxrwxrwx 1 linuxmi linuxmi 11 2月 1日 18:58 linuxmi.md -> linuxmi.dat
如果鏈接上的文件權限按原樣處理,任何用戶都可以創建指向安全文件的符號鏈接并自由訪問它。那將是一個主要的安全問題。值得慶幸的是,這不會發生。因為目標文件的權限很重要,而不是鏈接的權限。
您可以使用 chmod 命令更改鏈接的權限,但它會更改鏈接文件的權限,而不是鏈接本身。

您可以鏈接到一個鏈接的鏈接,也就是鏈式符號鏈接

您可以創建指向另一個鏈接的符號鏈接等等。這稱為鏈式符號鏈接。最好避免使用它們,因為它會造成更多混亂。 嗯,就是這樣。我假設您現在對軟鏈接有了更好的了解,并且您知道如何在 Linux 中創建符號鏈接。您也可以查看 symlinks 命令,它可以幫助您在 Linux 中找到損壞的符號鏈接并輕松管理它們。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11229

    瀏覽量

    208926
  • 符號
    +關注

    關注

    0

    文章

    55

    瀏覽量

    4315

原文標題:如何在 Linux 中創建符號鏈接 [完整指南]

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    一文弄懂Linux鏈接和軟鏈接

    Linux系統下,有兩種鏈接文件:一種是硬鏈接(Hard Link);另一種是軟鏈接,也稱為符號鏈接
    發表于 10-21 14:26 ?1334次閱讀

    Linux系統如何刪除軟鏈接

    Linux符號鏈接(symbolic link,或者symlink)也稱為軟鏈接,是一種特殊類型的文件,用作指向另一個文件的快捷方式。
    發表于 10-28 09:14 ?7441次閱讀

    Linux驅動創建procfs接口的方法

    上篇介紹了Linux驅動sysfs接口的創建,今天介紹procfs接口的創建。
    發表于 05-31 16:48 ?717次閱讀
    <b class='flag-5'>Linux</b>驅動<b class='flag-5'>中</b><b class='flag-5'>創建</b>procfs接口的方法

    Linux基礎】Linux鏈接簡介

    添加一個硬鏈接,文件的鏈接數就加1?! ∮?b class='flag-5'>鏈接文件有兩個限制  1)、不允許給目錄創建鏈接;  2)、只有在同一文件系統
    發表于 09-20 15:47

    Linux基礎】Linux鏈接簡介

      一、Linux鏈接簡介  Linux的軟鏈接(symbolic link)又叫符號連接,相當于Windows下的快捷方式?! ?/div>
    發表于 09-20 15:50

    linux下軟鏈接和硬鏈接的區別

    linux系統,鏈接分兩種 :一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接
    發表于 11-15 16:26

    怎樣在rt-thread目錄下創建多個目錄符號鏈接

    可以用Win10帶的mklink程序來創建目錄的符號鏈接,這樣就指向了rt-thread github目錄了。但整體情況不適合直接創建一個rt-thread目錄
    發表于 03-17 10:02

    Linux系統下的鏈接原理是什么?有哪些應用呢

    使用-fPIC 選項,還需要使用 -shared 選項,該選項將位置無關的代碼制作為動態庫。創建動態庫的方法如下 動態庫的使用為了使應用程序可以正確的引用該庫的全局符號,需要制作一個包含該動態庫文件
    發表于 06-21 17:05

    在RT-Thread目錄下創建多個目錄符號鏈接

    可以用Win10帶的mklink程序來創建目錄的符號鏈接,這樣就指向了rt-thread github目錄了。但整體情況不適合直接創建一個rt-thread目錄
    發表于 09-06 14:36

    STM32MP151C構建Custom Board“Eco system V2.1.0”發行版時存在不創建devicetree符號鏈接怎么解決?

    大家好基于STM32MP151C芯片構建Custom Board“Eco system V2.1.0”發行版時,存在不創建devicetree符號鏈接的問題。自定義板設備樹的符號
    發表于 01-12 07:05

    你知道Linux軟連接和硬鏈接

    Linux鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬
    發表于 04-25 18:00 ?1677次閱讀

    Linux命令鏈接操作符的實際應用

    Linux命令鏈接的意思是,通過操作符的行為將幾個命令組合執行。Linux鏈接命令,有些
    發表于 05-06 17:44 ?830次閱讀

    Linux的軟鏈接、硬鏈接都用在哪些場合?

    最近,看到很多文章都在介紹 Linux 的文件系統,其中就包括:inode 節點、軟鏈接、硬鏈接等重要的概念。 于是就有小伙伴私信問我:這些概念我都懂,但是我能利用他們來完成什么工作
    的頭像 發表于 06-21 16:33 ?1653次閱讀

    如何使用Linux ln命令以及如何創建符號鏈接

    你可能知道windows的系統有個叫快捷方式的文件,當你為一個文件或者目錄創建快捷方式時,無論你將快捷方式放在哪里,都會打開原來的那個文件或者目錄。
    的頭像 發表于 12-09 17:42 ?2231次閱讀

    如何在Linux查找斷開的符號鏈接

    在之前的文章,我們解釋了什么是 Linux 符號鏈接符號
    的頭像 發表于 02-06 18:23 ?1610次閱讀