什麼是符號連結(symlink)?如何在linux中建立一個

檔案快捷方式很有用,但符號連結(symlinks)可以更改您在Linux、macOS和Windows上使用檔案和資料夾的方式。...

作為一個計算機用戶,如果你必須定義一個快捷方式,你可能會說它是指向文件、文件夾或應用程序的指針,對嗎?沒錯。

multitask-linux-terminal

但這個簡短的定義並不能說明全部。這意味著所有的捷徑都是相同的,而不是相同的。您幾乎有幾種快捷方式類型。我們將關注下面的符號鏈接。它也被稱為符號鏈接或軟鏈接,我們將互換使用這些術語。

讓我們看看什麼是符號鏈接,如何在Linux以及macOS和Windows上創建符號鏈接,為什麼需要這種特殊類型的快捷方式,等等。

什麼是符號鏈接(a symlink)?

符號鏈接確實是一個快捷方式文件。但是它不同於標準的快捷方式,比如說,程序安裝程序放在你的Windows桌面上使程序更容易運行。

當然,單擊任一類型的快捷方式都會打開鏈接的對象,但是在這兩種情況下,引擎蓋下的操作是不同的,我們將在下面看到。

當標準快捷方式指向某個對象時,符號鏈接使其看起來好像鏈接的對象確實在那裡。您的計算機及其應用程序將符號鏈接作為目標對象本身讀取。

在macOS上,當您嘗試在與原始對象相同的位置創建符號鏈接時,會出現一條“file exists”消息來證明這一點。即使在其他地方創建符號鏈接後嘗試將其移動到同一位置,也會將其重命名為副本。

File exists message while creating a symlink in Terminal on macOS

符號鏈接與標準快捷方式

假設您的硬盤上有一個特定的文件夾,您想與Dropbox同步,而不將文件夾本身移動到Dropbox。

在這種情況下,在Dropbox中創建文件夾的快捷方式是毫無意義的。快捷方式將在您創建它的設備上工作。Dropbox也會同步快捷方式。但是,當您從另一臺計算機訪問同步的快捷方式文件時,它是無效的,即,它不會指向任何地方。

現在,如果這個快捷方式是一個符號鏈接,你就不會面對這個問題。這是因為Dropbox將符號鏈接讀取為實際文件夾,並因此同步該文件夾中的數據。然後,您可以訪問啟用了Dropbox同步的所有設備上的文件夾及其內容,即使原始文件夾不是Dropbox的一部分。

請記住,無論是常規快捷方式還是符號鏈接,刪除它都不會以任何方式影響原始對象。

為什麼需要符號鏈接?

一般來說,如果您想:

  • 從多個位置訪問文件,無需創建副本,也無需佔用大量磁盤空間。(符號鏈接的大小隻有幾個字節。)
  • 維護文件的不同版本,同時確保指向該文件的任何指針始終指向最新或最新版本。(這是因為即使用同名的不同文件替換目標文件,符號鏈接仍保持活動狀態。)
  • 將數據從C:\驅動器移到輔助硬盤,而不中斷需要將所述數據放在C:\驅動器上的系統或應用程序功能。

您可能會遇到許多其他符號鏈接的用例。

如何創建符號鏈接

可以使用終端或命令行創建軟鏈接。如果你不喜歡擺弄終端的話,我們稍後會直截了當地使用工具。

在linux和macos上

Terminal command for creating a symbolic link on macOS

在Linux上,可以使用以下終端命令為文件或文件夾創建符號鏈接:

ln -s [/path/to/file] [/path/to/symlink]

同樣的命令也適用於macOS,因為macOS是基於UNIX的操作系統,比如Linux。

有關示例命令,請參見上面的屏幕截圖。

某些Linux桌面環境中的本機文件管理器允許您通過右鍵單擊菜單創建軟鏈接,因此您可能需要檢查您的file explorer應用程序是否具有該選項。

流行的Nautilus文件管理器與各種Linux發行版捆綁在一起,它有一個Make Link菜單選項,現在已經消失了。但是您仍然可以在Nautilus中創建符號鏈接,方法是按住Ctrl和Shift鍵並將目標文件拖到希望符號鏈接顯示的位置。別擔心,原始文件會放在原處的。

在windows上

您需要以管理員身份打開命令提示符窗口,並鍵入以下命令以創建符號鏈接:

mklink [/path/to/symlink] [/path/to/file]

對於指向目錄的符號鏈接,必須使用/d標誌稍微調整命令:

mklink /d [/path/to/symlink] [/path/to/file]

如果不想使用命令行,可以使用名為linkshell Extension的圖形工具來創建符號鏈接。它是用於文件管理的最佳Windows文件資源管理器擴展之一。

注意:系統不會阻止您在符號鏈接中創建符號鏈接,但最好避免這樣做。否則,您將創建一個無限循環,這可能會導致系統範圍內的服務(如防病毒掃描程序)出現問題。

macos上的符號鏈接與別名

Symlink and alias for a file in Finder on macOS

如果你曾經在macOS上創建過別名,你會注意到它們的行為很像符號鏈接。兩種類型的快捷方式都引用鏈接文件或文件夾的路徑名。

不同之處在於,別名還使用名為inode(索引節點)的標識符標記鏈接對象。此標識符對於對象是唯一的,並在文件系統中跟隨它。

這就是為什麼即使將別名的目標移動到其他位置,別名也能正常工作的原因。用符號鏈接試試,你會遇到一個錯誤。(除非處理受系統保護的文件,否則可以毫無問題地移動別名和符號鏈接本身。)

當然,如果刪除原始文件或重命名層次結構中較高的任何文件夾,這兩種類型的快捷方式都將被證明是無用的。

無法區分別名和符號鏈接之間的區別,因為您已從別名的文件名中刪除了別名標記?

打開每個快捷方式的“文件檢查器”或“獲取信息”面板,查看“常規”部分下的文件大小。如果它說(磁盤上的字節數為零),那麼您正在處理一個符號鏈接。

使用此終端命令時,符號鏈接(在當前文件夾中)也會顯示自己:

ls -la

這個命令在Linux上也可以運行,您將看到指向原始對象位置的符號鏈接。

符號鏈接比快捷方式好

符號鏈接一開始可能會讓人困惑,但如果你花時間去理解它們,你會發現它們畢竟很容易使用!

你甚至可以用Termux在Android上創建符號鏈接,Termux是一個允許你使用Linux命令行的應用程序。你知道你可以用符號鏈接更容易地共享Google驅動器文件嗎?

  • 發表於 2021-03-19 23:12
  • 閱讀 ( 51 )
  • 分類:電腦

你可能感興趣的文章

如何將iphone備份到mac上的其他位置

... 您可以使用符號連結(symlink)使檔案或資料夾看起來好像存在於其他位置。應用程式讀取並使用符號連結指向不同的目標位置。 ...

  • 發佈於 2021-03-11 01:00
  • 閲讀 ( 52 )

學習python?下面是如何複製檔案

... shutil.copy([source directory path], [destination directory path], follow_symlinks=True) ...

  • 發佈於 2021-03-11 10:45
  • 閲讀 ( 54 )

如何在ubuntu中使用簡單命令啟動預設應用程式

... 編輯器命令實際上是一個符號連結(symlink)。你可能會問,有沒有nano的連結?不!命令/usr/bin/editor是指向/etc/alternatives/editor的連結。/etc/alternatives目錄是將系統中的所有備選方案作為符號連結進行管理的地...

  • 發佈於 2021-03-15 02:20
  • 閲讀 ( 65 )

用於檔案管理的10個最佳windows檔案資源管理器副檔名

...,可以簡化建立硬連結、連線或卷裝入點以及符號連結(symlinks)的過程,只需單擊幾下。找到檔案或資料夾,單擊滑鼠右鍵,然後從選單中選擇“拾取連結源”。 ...

  • 發佈於 2021-03-22 02:04
  • 閲讀 ( 54 )

關於linux最常見的問題。。。回答

... ln -s /path/to/file /path/to/symlink ...

  • 發佈於 2021-03-25 12:19
  • 閲讀 ( 58 )

如何在linux中新增使用者

... 什麼是useradd命令(the useradd command)? ...

  • 發佈於 2021-03-26 23:29
  • 閲讀 ( 68 )

如何使用受限shell來限制linux使用者可以做什麼

受限的shell限制了使用者帳戶在Linux上可以做什麼。受限使用者不能更改其目錄,您可以控制他們可以訪問哪些命令。下面介紹如何在Linux上設定受限shell。 受限炮彈 受限shell不是另一個shell。這是標準外殼的另一種模式。Bash...

  • 發佈於 2021-03-31 10:57
  • 閲讀 ( 56 )

如何在linux上查詢和刪除斷開的符號連結

...何必要的事情來修復符號連結。 請注意,如果嘗試執行symlink,則得到的錯誤引用的是symlink名稱,而不是symlink指向的程式的名稱。 我們鍵入以下內容: ./hello 查詢斷開的符號連結 大多數find的現代版本都有xtype(擴充套件型別...

  • 發佈於 2021-04-01 09:09
  • 閲讀 ( 51 )

你想知道的關於linux上inodes的一切

...工作的這些重要部分經常被誤解。讓我們看看他們到底是什麼,他們做了什麼。 檔案系統的元素 根據定義,檔案系統需要儲存檔案,而且它們還包含目錄。檔案儲存在目錄中,這些目錄可以有子目錄。在某個地方,必須記錄...

  • 發佈於 2021-04-02 18:04
  • 閲讀 ( 44 )

如何在linux上使用stat命令

...。我們會教你怎麼使用它。 stat帶你到幕後 ls命令在做什麼方面做得很好,而且做得很多,但是對於Linux,似乎總有一種方法可以更深入地瞭解表面之下的內容。通常,這不僅僅是一個掀開地毯邊緣的例子。你可以把地板撕開,...

  • 發佈於 2021-04-02 19:25
  • 閲讀 ( 54 )
肖晨玉
肖晨玉

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦