怎么在Linux上查找和刪除損壞的符號(hào)鏈接

本篇內(nèi)容主要講解“怎么在Linux上查找和刪除損壞的符號(hào)鏈接”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么在Linux上查找和刪除損壞的符號(hào)鏈接”吧!

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),平頂山企業(yè)網(wǎng)站建設(shè),平頂山品牌網(wǎng)站建設(shè),網(wǎng)站定制,平頂山網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,平頂山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

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

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

什么是符號(hào)鏈接?

通常稱它們?yōu)椤胺?hào)鏈接”或“軟鏈接”,符號(hào)鏈接是非常小的文件。實(shí)際上,符號(hào)鏈接真正包含的是它指向的文件的名稱,通常包含路徑(相對(duì)于當(dāng)前位置或絕對(duì)路徑)。如果有個(gè)名為 ref1 的文件指向名為 /apps/refs/ref-2020 的文件,那么 ref1 的長度將為 19 個(gè)字符,即使 ref-202 文件有 2TB。如果指向 ./ref-2020,那么長度僅為 10 個(gè)字符。如果指向 ref-2020,那么只有 8 個(gè)字節(jié)。

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

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

符號(hào)鏈接損壞時(shí)

當(dāng)一個(gè)符號(hào)鏈接所指向的文件從系統(tǒng)中刪除或重新命名時(shí),符號(hào)鏈接將不再起作用。符號(hào)鏈接只不過是存儲(chǔ)在某個(gè)特定目錄中的引用而已,它不會(huì)隨著指向它的文件發(fā)生變化而更新或刪除。它一直指向被引用的文件,即使這個(gè)文件早已消失。

如果你嘗試使用指向一個(gè)不存在的文件的符號(hào)鏈接,那么將出現(xiàn)如下錯(cuò)誤:

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

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

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

而且,如果(上面的)長列表的第一個(gè)字母沒有引起你的注意,這表示該文件是符號(hào)鏈接。rwxrwxrwx 權(quán)限是標(biāo)準(zhǔn)權(quán)限,并不反映符號(hào)鏈接指向的文件的權(quán)限。

查找損壞的符號(hào)鏈接

find 命令有一個(gè)選項(xiàng),能讓你找到指向不再存在的文件的符號(hào)鏈接。此命令列出當(dāng)前目錄中的符號(hào)鏈接:

$ find . -type l

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

另一方面,下面的命令在當(dāng)前目錄中查找指向不存在的文件的符號(hào)鏈接:

$ find . -xtype l

為了避免在該命令嘗試查找你無權(quán)檢查的文件或目錄時(shí)發(fā)生錯(cuò)誤,你可以將所有錯(cuò)誤輸出到 /dev/null,如下所示:

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

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

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

如何處理損壞的符號(hào)鏈接

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

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

該命令的 rm {} 部分會(huì)變成“刪除文件”的命令

如果你想將符號(hào)鏈接與不同的文件相關(guān)聯(lián),你必須先刪除該符號(hào)鏈接,然后重新創(chuàng)建它,使其指向新文件。這是一個(gè)例子:

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

總結(jié)

符號(hào)鏈接使引用的文件更易于查找和使用,但有時(shí)它會(huì)比那些宣傳去年已經(jīng)關(guān)閉的餐館的路標(biāo)還過分。find 命令可以幫助你擺脫損壞的符號(hào)鏈接,或者提醒你沒有你可能仍然需要的文件。

到此,相信大家對(duì)“怎么在Linux上查找和刪除損壞的符號(hào)鏈接”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞名稱:怎么在Linux上查找和刪除損壞的符號(hào)鏈接
本文地址:http://www.muchs.cn/article38/pgdisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站收錄商城網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司軟件開發(fā)、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站