日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 查找_如何在 Linux 上查找和删除损坏的符号链接 | Linux 中国

發布時間:2025/4/5 linux 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 查找_如何在 Linux 上查找和删除损坏的符号链接 | Linux 中国 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
符號鏈接是指向另一個文件的 Linux 文件。如果刪除了被引用的文件,符號鏈接會保留,但不會顯示有問題,除非你嘗試使用它。https://linux.cn/article-12298-1.html作者:Sandra Henry-stocker譯者:geekpi

符號鏈接是指向另一個文件的 Linux 文件。如果刪除了被引用的文件,符號鏈接會保留,但不會顯示有問題,除非你嘗試使用它。以下是查找和刪除指向文件已被刪除的符號鏈接的簡單方法。

符號鏈接(symbolic link)在 Linux 系統上扮演了非常有用的角色。它們可以幫助你記住重要文件在系統上的位置,使你更容易訪問這些文件,并讓你不必為了更方便訪問大文件而復制它們,從而節省了大量的空間。

什么是符號鏈接?

通常稱它們為“符號鏈接”或“軟鏈接”,符號鏈接是非常小的文件。實際上,符號鏈接真正包含的是它指向的文件的名稱,通常包含路徑(相對于當前位置或絕對路徑)。如果有個名為?ref1?的文件指向名為?/apps/refs/ref-2020?的文件,那么?ref1?的長度將為 19 個字符,即使?ref-202?文件有 2TB。如果指向?./ref-2020,那么長度僅為 10 個字符。如果指向?ref-2020,那么只有 8 個字節。

如果你執行?vi ref1?之類的命令(其中?ref1?是符號鏈接的名稱),你將編輯?ref1?指向的文件,而不是符號鏈接本身的內容。Linux 系統知道如何使用符號鏈接,并且可以做正確的事。同樣,如果你使用諸如?cat、more、head?或?tail?之類的命令,那么將查看引用文件的內容。

另一方面,如果刪除符號鏈接,你將刪除該鏈接,而不是引用的文件。再說一次,Linux 知道怎么做。符號鏈接使得使用和共享文件更加容易,僅此而已。

符號鏈接損壞時

當一個符號鏈接所指向的文件從系統中刪除或重新命名時,符號鏈接將不再起作用。符號鏈接只不過是存儲在某個特定目錄中的引用而已,它不會隨著指向它的文件發生變化而更新或刪除。它一直指向被引用的文件,即使這個文件早已消失。

如果你嘗試使用指向一個不存在的文件的符號鏈接,那么將出現如下錯誤:

$ tail whassuptail: cannot open 'whassup' for reading: No such file or directory

如果你嘗試訪問指向自身的符號鏈接(是的,奇怪的事情發生了),你將看到類似以下的內容:

$ cat loopycat: loopy: Too many levels of symbolic links$ ls -l loopylrwxrwxrwx 1 shs shs 5 May 28 18:07 loopy -> loopy

而且,如果(上面的)長列表的第一個字母沒有引起你的注意,這表示該文件是符號鏈接。rwxrwxrwx?權限是標準權限,并不反映符號鏈接指向的文件的權限。

查找損壞的符號鏈接

find?命令有一個選項,能讓你找到指向不再存在的文件的符號鏈接。此命令列出當前目錄中的符號鏈接:

$ find . -type l

l?(小寫字母?L)告訴?find?命令查找符號鏈接。

另一方面,下面的命令在當前目錄中查找指向不存在的文件的符號鏈接:

$ find . -xtype l

為了避免在該命令嘗試查找你無權檢查的文件或目錄時發生錯誤,你可以將所有錯誤輸出到?/dev/null,如下所示:

$ find . -xtype l 2>/dev/null

你也可以使用此命令找到損壞的符號鏈接。它比前面的更長,但做的是同樣的事情:

$ find . -type l ! -exec test -e {} \; -print 2>/dev/null

如何處理損壞的符號鏈接

除非你知道符號鏈接引用的文件會被替換,否則最好的方法是直接刪除損壞的鏈接。實際上,如果需要,你可以使用一條命令查找并刪除損壞的符號鏈接,如:

$ find . -xtype l 2>/dev/null -exec rm {} \;

該命令的?rm {}?部分會變成“刪除文件”的命令

如果你想將符號鏈接與不同的文件相關聯,你必須先刪除該符號鏈接,然后重新創建它,使其指向新文件。這是一個例子:

$ rm ref1$ ln -s /apps/data/newfile ref1

總結

符號鏈接使引用的文件更易于查找和使用,但有時它會比那些宣傳去年已經關閉的餐館的路標還過分。find?命令可以幫助你擺脫損壞的符號鏈接,或者提醒你沒有你可能仍然需要的文件。


via:?https://www.networkworld.com/article/3546252/how-to-find-and-remove-broken-symlinks-on-linux.html

作者:Sandra Henry-Stocker?選題:lujun9972?譯者:geekpi?校對:wxy

本文由?LCTT?原創編譯,Linux中國?榮譽推出

總結

以上是生活随笔為你收集整理的linux 查找_如何在 Linux 上查找和删除损坏的符号链接 | Linux 中国的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。