为什么要创建一个空文件?

Why would one create an empty file?

我在观看有关 Terminal

的视频时看到命令:touch

它是这样的:

user$ touch testfile
user$ ls
Documents Photos Music testfile

所以我无法回答自己:

Why one would want to create an empty file?

如果可以的话,请列出它的一些适用性!

  • 表示没有实例的信息集合。
  • 当文件存在或不存在是最重要的时候

我将举一个实际的例子,说明几天前我在Ubuntu中刚刚使用空文件时的情况。我在 C 中创建了一个程序,它可以对文件、目录和整个文件目录进行符号链接。完成所有编码后,我制作了一个简单的 shell .sh 脚本,它创建了一个 "mock" 目录结构。包括空文件和目录,这样我就可以测试我的程序符号链接这些 "fake" 文件。

这样可以轻松地:

  1. 如果出现问题,请轻松重新开始测试。
  2. 摆弄不重要的文件(不想冒丢失实际数据的风险)。
  • 使用简单的测试来测试脚本是否有效"Subject"
  • 稍后放入物品、代码和其他东西。
  • 将其用作示例或代表信息。

我使用:

 touch __init__.py

我一直在一个目录中导入自定义 python 模块、数据文件(csv、txt 等)等。


解释:

在Python中,当要导入另一个文件夹中的模块时,目标文件夹需要一个__init__.py文件(可以是完全空的)。

 from lib import somefile

并且在目录 lib 中有一个名为 __init__.py

的空白文件

它可以用于锁定文件,或者当您需要的数据在文件名本身中时。例如,我曾经 touch 一个名为“/.MYCOMPUTER_ROOT_2015_AUG_3”的文件(例如),这样当我将 "mycomputer" 上的根分区备份到磁带时,我可以知道我正在读取哪个磁带。

对于偏执的系统管理员。

要编写 shell 脚本,在具有多个并发用户的系统上以提升的权限(例如 root 用户)执行命令,并且您想保护您的 shell 在你完全使用它之前防止意外(或恶意)使用的脚本。然后你做:

  • touch script.sh -> 创建一个空文件,该文件什么都不做且无法执行,因为它没有设置 +x,所以没有人可以做任何有害的事情。
  • chownchmod 文件,以确保只有正确的用户才能对其执行任何操作。
  • 然后你才开始 viemacsnano 或其他任何东西来编写你非常强大的 shell 脚本。

如果您在 chown/chmod 写入文件后执行此操作,那么其他人可能已经用它做了坏事。

编辑:一个更好的例子是带有超级机密凭证的文件,例如带有 aws_secret_access_key~/.aws/credentials 文件。 如果您先在文件中写入凭据,然后 chmod 他们,那么在这几秒钟之间,有人可能会窃取您的文件。 如果你先chmod之前有任何内容,那么你是安全的(r)。