【问题标题】:Why would one create an empty file?为什么要创建一个空文件?
【发布时间】:2015-10-22 06:06:12
【问题描述】:
我在观看有关Terminal 的视频时看到了命令:touch
有点像:
user$ touch testfile
user$ ls
Documents Photos Music testfile
所以我无法回答自己:
为什么要创建一个空文件?
如果可以的话,请列出它的一些适用性!
【问题讨论】:
标签:
file
unix
file-io
terminal
【解决方案1】:
- 表示没有实例的信息集合。
- 只要文件的存在与否就很重要
【解决方案2】:
我将给出一个实际示例,说明几天前我刚刚在 Ubuntu 中使用空文件。我在C 中创建了一个程序,它可以对文件、目录和整个文件目录进行符号链接。完成所有编码后,我制作了一个简单的 shell .sh 脚本,该脚本创建了一个“模拟”目录结构。包括空文件和目录,这样我就可以测试我的程序符号链接这些“假”文件。
这样可以很容易地:
- 如果出现问题,请轻松重新开始测试。
- 玩弄不重要的文件(不想冒丢失实际数据的风险)。
【解决方案3】:
- 使用简单的测试“主题”来测试脚本是否有效
- 稍后放入项目、代码和其他内容。
- 将其用作示例或表示信息。
【解决方案4】:
我用:
touch __init__.py
我一直在一个目录中导入自定义 python 模块、数据文件(csv、txt 等)等。
说明:
在 Python 中,当想要在另一个文件夹中导入模块时,目标文件夹需要一个 __init__.py 文件(可以完全为空)。
即
from lib import somefile
并且在目录lib中有一个名为__init__.py的空白文件
【解决方案5】:
它可以用于锁定文件,或者当您需要的数据在文件名本身时。例如,我曾经触摸一个名为“/.MYCOMPUTER_ROOT_2015_AUG_3”的文件(例如),以便当我将“mycomputer”上的根分区备份到磁带时,我可以知道我正在阅读哪个磁带。
【解决方案6】:
对于偏执的系统管理员。
要编写一个 shell 脚本,在具有多个并发用户的系统上执行具有提升权限的命令(例如 root 用户),并且您希望在您之前保护您的 shell 脚本免受意外(或恶意)使用'完全完成了它。然后你做:
-
touch script.sh -> 创建一个空文件,它什么都不做,也无法执行,因为它没有设置+x,所以没有人可以做任何有害的事情。
-
chown 和 chmod 文件,以确保只有正确的用户才能使用它。
- 只有这样你才能开始
vi 或 emacs 或 nano 或其他任何东西来编写你非常强大的 shell 脚本。
如果您在编写文件之后执行chown/chmod,那么其他人可能已经用它做了坏事。
编辑:一个更好的例子是带有超级机密凭据的文件,例如带有aws_secret_access_key 的~/.aws/credentials 文件。
如果你先在文件中写入凭据,然后chmod 他们,那么在这之间的几秒钟内,有人可能会窃取你的文件。
如果你在有任何内容之前先chmod,那么你是安全的(r)。