Linux 中临时文件和常规文件的主要区别是什么?

Linux 中临时文件和常规文件的主要区别是什么?

Linux 中临时文件(“tempfile”)和常规文件的主要区别是什么?

我发现这两个 inode 之间唯一的主要区别是,一般来说,无论出于何种原因,“临时文件”的生命周期比“常规文件”要短得多,而从原则上来说,两者实际上都是临时的(至少从事实上这个宇宙正在走向一个总热寂)。

参考:

  1. 管道与临时文件有何不同?

  2. FIFO(命名管道)与常规管道(无名管道)有何不同?

答案1

临时文件和常规文件完全没有区别。

临时文件常规文件,常规文件是“常规”的,而不是目录、设备特殊文件或命名管道等。

正如您所指出的,唯一的区别是该文件的典型用途。当程序或脚本创建“临时文件”时,它通常是一个常规文件,用于存储在创建它的进程的生命周期之外不需要的临时数据。此类文件通常以$TMPDIR.

POSIX 定义:

文件:可以写入、读取或两者兼而有之的对象。文件具有某些属性,包括访问权限和类型。文件类型包括常规文件、字符特殊文件、块特殊文件、FIFO特殊文件、符号链接、套接字和目录。该实现可能支持其他类型的文件。

常规文件:文件是可随机访问的字节序列,没有系统强加的进一步结构。

然而,它并不在乎谈论“临时文件”的定义,因为它不是一种特定的文件类型(而是一种使用常规文件)。

答案2

临时文件和常规文件之间没有技术差异。

从语义上讲,假设以下陈述是合理的:

  1. 临时文件应该是短暂的
  2. 临时文件可能会在仍在使用时故意从文件系统中删除(由应用程序本身)
  3. 长期存在的临时文件在仍在使用时可能会意外地从文件系统中删除(通过清理过程)
  4. /tmp通常应在或下创建临时文件/var/tmp

相关内容