国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

怎么在Linux上查找和刪除損壞的符號鏈接

發(fā)布時(shí)間:2021-08-17 12:35 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 服務(wù)器 歡迎投稿:712375056

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


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

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

什么是符號鏈接?

通常稱(chēng)它們?yōu)椤胺栨溄印被颉败涙溄印?,符號鏈接是非常小的文件。?shí)際上,符號鏈接真正包含的是它指向的文件的名稱(chēng),通常包含路徑(相對于當前位置或絕對路徑)。如果有個(gè)名為 ref1 的文件指向名為 /apps/refs/ref-2020 的文件,那么 ref1 的長(cháng)度將為 19 個(gè)字符,即使 ref-202 文件有 2TB。如果指向 ./ref-2020,那么長(cháng)度僅為 10 個(gè)字符。如果指向 ref-2020,那么只有 8 個(gè)字節。

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

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

符號鏈接損壞時(shí)

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

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

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

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

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

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

查找損壞的符號鏈接

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

$ find . -type l

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

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

$ find . -xtype l

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

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

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

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

如何處理?yè)p壞的符號鏈接

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

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

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

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

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

總結

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

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

中文字幕无码不卡免费视频| 电影在线免费高清中文| 国产精品亚洲а∨无码播放不卡| 亚洲色欲综合天堂亚洲| 亚洲加勒比无码一区二区| 久久精品第一国产久精国产宅男66|