2017-07-15 198 views
1

在文件及其父目录下面有ls -l命令的四个输出。从检查ls -l输出中删除文件的能力

四种场景中的哪一种可以删除file1? (答案是红色的)

我不明白为什么答案是红色的,而且在ls -l输出中意味着什么只有-而不是权限部分中的其他内容?这只是说没有人有权限使用这个文件,如果有的话,它为什么仍然是答案?

enter image description here

回答

1

删除一个文件不是在文件的操作,但在目录中。这是因为目录中的“文件”项是而不是文件;它只是对文件的引用(语义很奇怪,因为“文件”一词的重载意义以及常见用法的不精确性。)为了删除文件(例如,删除对它的引用),您只需要执行并读取该文件所在目录的权限。因此情况为1。

请注意,删除引用(“链接”)到一个目录中的文件只会导致删除该文件,如果这是文件系统中的最后一个引用。该引用计数在ls -l输出的第2列中给出,因此在您的情况下,目录“directory1”中名称为“file1”的链接文件将被文件系统垃圾收集。 (例如,数据将被删除。)

当然,如果文件被覆盖或截断,数据也可以被删除,所以我的整个答案基于假设您使用“已删除”表示“未链接“或”删除“。不准确的语言猖獗!