2017-07-15 44 views
1

在文件及其父目錄下面有ls -l命令的四個輸出。從檢查ls -l輸出中刪除文件的能力

四種場景中的哪一種可以刪除file1? (答案是紅色的)

我不明白爲什麼答案是紅色的,而且在ls -l輸出中意味着什麼只有-而不是權限部分中的其他內容?這只是說沒有人有權限使用這個文件,如果有的話,它爲什麼仍然是答案?

enter image description here

回答

1

刪除一個文件不是在文件的操作,但在目錄中。這是因爲目錄中的「文件」項是而不是文件;它只是對文件的引用(語義很奇怪,因爲「文件」一詞的重載意義以及常見用法的不精確性。)爲了刪除文件(例如,刪除對它的引用),您只需要執行並讀取該文件所在目錄的權限。因此情況爲1。

請注意,刪除引用(「鏈接」)到一個目錄中的文件只會導致刪除該文件,如果這是文件系統中的最後一個引用。該引用計數在ls -l輸出的第2列中給出,因此在您的情況下,目錄「directory1」中名稱爲「file1」的鏈接文件將被文件系統垃圾收集。 (例如,數據將被刪除。)

當然,如果文件被覆蓋或截斷,數據也可以被刪除,所以我的整個答案基於假設您使用「已刪除」表示「未鏈接「或」刪除「。不準確的語言猖獗!