从检查 ls-l 输出中删除文件的能力
ability to delete a file from inspecting the ls-l output
下面是文件及其父目录的 ls -l
命令的四个输出。
student1在哪四种情况下可以删除file1? (答案是红色的)
我不明白为什么答案是红色的,而且在 ls -l
输出中权限部分只有 -
而没有其他任何内容是什么意思?只是说没有人有这个文件的权限,如果是这样,为什么仍然是答案?
删除文件不是对文件的操作,而是对目录的操作。这是因为目录中的 "file" 条目是 而不是 文件;它只是对文件的引用(由于单词 "file" 的重载含义和常用用法的不精确,语义很奇怪。)为了删除文件(例如,删除对它的引用),您只需要文件所在目录的执行和读取权限。因此在您的情况下是场景 1。
请注意,删除对一个目录中文件的引用 (a "link") 只会导致删除该文件(如果该文件是文件系统中的最后一个引用)。该引用计数在 ls -l
输出的第 2 列中给出,因此在您的情况下,目录 "directory1" 中名称 "file1" 链接的文件将被文件系统收集为垃圾。 (例如,数据将被删除。)
当然,如果文件被覆盖或截断也可以删除数据,所以我的整个回答是基于假设你使用 "deleted" 表示 "unlinked" 或 "removed".不严谨的语言泛滥成灾!
下面是文件及其父目录的 ls -l
命令的四个输出。
student1在哪四种情况下可以删除file1? (答案是红色的)
我不明白为什么答案是红色的,而且在 ls -l
输出中权限部分只有 -
而没有其他任何内容是什么意思?只是说没有人有这个文件的权限,如果是这样,为什么仍然是答案?
删除文件不是对文件的操作,而是对目录的操作。这是因为目录中的 "file" 条目是 而不是 文件;它只是对文件的引用(由于单词 "file" 的重载含义和常用用法的不精确,语义很奇怪。)为了删除文件(例如,删除对它的引用),您只需要文件所在目录的执行和读取权限。因此在您的情况下是场景 1。
请注意,删除对一个目录中文件的引用 (a "link") 只会导致删除该文件(如果该文件是文件系统中的最后一个引用)。该引用计数在 ls -l
输出的第 2 列中给出,因此在您的情况下,目录 "directory1" 中名称 "file1" 链接的文件将被文件系统收集为垃圾。 (例如,数据将被删除。)
当然,如果文件被覆盖或截断也可以删除数据,所以我的整个回答是基于假设你使用 "deleted" 表示 "unlinked" 或 "removed".不严谨的语言泛滥成灾!