2013-12-18 25 views
0

當我在我的當前工作目錄做ls -lart它顯示LS -lrt顯示文件中不存在

lrwxrwxrwx 1 root 10004 36 Dec 16 17:59 index.html ->/home/moviebeam/assets/ui/index.html

但我不能看到file.And最重要的文件內容index.html不存在在路徑/home/moviebeam/assets/ui/。那麼爲什麼當我運行命令ls -lrt時顯示出來?

回答

1

此:

lrwxrwxrwx 1 root 10004 36 Dec 16 17:59 index.html ->/home/moviebeam/assets/ui/index.html 

是軟鏈接到原始文件。如果該目標文件存在,則在創建時進行檢查,但是一旦創建了軟鏈接(或符號鏈接),目標文件可以被刪除,並且軟鏈接仍然存在。

如果你想保留鏈接中的文件內容,而目標文件可以被刪除,那麼你應該創建一個硬鏈接(ln而不是ln -s)。

+0

原始文件被刪除時保留符號鏈接的用途基本上是什麼?如果刪除原始文件後沒有用,也應該自動刪除。 – Arya

+0

那麼,這是一個當時的設計決策,我確信它有一個很好的理由:-) – Borniet

+0

符號鏈接只不過是一個指針,可以跨越文件系統的邊界,超出了文件系統託管的範圍原始文件。 – sargant

1

即使文件或文件夾不在另一端,也可能存在符號鏈接。如果您運行file index.html,它可能會告訴您這是一個錯誤的符號鏈接。刪除原始文件不會刪除指向它的任何符號鏈接。