能够从检查ls-l输出中删除文件

时间:2017-07-15 13:29:03

标签: linux unix operating-system ls

在下面,文件的ls -l命令有四个输出,它是父目录。

student1可以删除file1的四种情况中的哪一种? (答案是红色的)

我不明白为什么答案是红色的,而且ls -l输出中只有-而在权限部分中没有其他内容的含义是什么?它只是说没有人拥有这个文件的许可,如果是这样,为什么它仍然是答案?

enter image description here

1 个答案:

答案 0 :(得分:1)

删除文件不是对文件的操作,而是对目录的操作。这是因为"文件"目录中的条目不是文件;它只是对文件的引用(语义是奇怪的,因为单词"文件"以及常见用法的不精确的重载含义。)为了删除文件(例如,删除对它的引用),你只需要对文件所在的目录执行和读取权限。因此,在您的情况下为方案1。

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

当然,如果文件被覆盖或截断,也可以删除数据,所以我的整个答案都基于你使用"删除"表示"取消关联"或"删除"。不精确的语言猖獗!