快速回答:如何在 Linux 中找到所有硬鏈接?

要一次找到所有硬鏈接,有 為設備上的所有文件查找吐出 inode,然後使用 sort 和 uniq 之類的東西來查找重複項。 這將列出當前目錄中的文件並對其執行 ls。

您可以通過以下方式搜索到 inode 編號 NUM 的硬鏈接 使用“-inum NUM”. 如果在您開始搜索的目錄下有任何文件系統掛載點,請使用“-xdev”選項,除非您還使用“-L”選項。

使用 NTFS 文件系統的 Windows 有一個限制 1024個硬鏈接 在一個文件上。

如何在 Linux 中使用 find?

基本示例

  1. 找 。 – 命名 thisfile.txt。 如果您需要知道如何在 Linux 中找到一個名為 thisfile 的文件。 …
  2. 找到 /home -name *.jpg。 尋找所有。 /home 和它下面的目錄中的 .jpg 文件。
  3. 找 。 – 輸入 f -空。 在當前目錄中查找一個空文件。
  4. 查找 /home -user randomperson-mtime 6 -iname “.db”

您可以 檢查文件是否是帶有 [ -L file ] 的符號鏈接 . 同樣,您可以使用 [ -f file ] 測試文件是否為常規文件,但在這種情況下,會在解析符號鏈接後進行檢查。 硬鏈接不是一種文件,它們只是文件(任何類型)的不同名稱。

硬鏈接目錄的原因是 不允許 有點技術性。 本質上,它們破壞了文件系統結構。 無論如何,您通常不應使用硬鏈接。 符號鏈接允許大多數相同的功能而不會引起問題(例如 ln -s target link )。

查看目錄中的符號鏈接:

  1. 打開終端並移動到該目錄。
  2. 輸入命令:ls -la。 這將列出目錄中的所有文件,即使它們是隱藏的。
  3. 以 l 開頭的文件是您的符號鏈接文件。

1個答案。 每個目錄都有一個指向自身及其父目錄的鏈接 (這就是為什麼 . 一個空目錄的鏈接計數為 2)。 但是因為每個目錄都鏈接到它的父目錄,所以任何有子目錄的目錄都會有來自那個子目錄的鏈接。

如果您發現兩個具有相同屬性但不確定它們是否是硬鏈接的文件, 使用 ls -i 命令查看 inode 號. 硬鏈接在一起的文件共享相同的 inode 編號。 共享 inode 編號為 2730074,這意味著這些文件是相同的數據。

硬鏈接永遠不會指向已刪除的文件. 硬鏈接就像指向實際文件數據的指針。 並且該指針在文件系統術語中稱為“inode”。 因此,換句話說,創建硬鏈接就是創建另一個 inode 或指向文件的指針。

喜歡這篇文章嗎? 請分享給您的朋友:
今日操作系統