linux - 在 Linux 上创建文件时发生了什么

标签 linux file touch

我想知道在 Linux 上创建文件时究竟发生了什么,例如使用 touch file.txt。当你执行这个时会发生什么?是否有指向此文件的链接?

谢谢。

卡夫森。

最佳答案

$ man touch 所示,$ touch FILE 不创建 FILE; $touch FILE用于“将每个FILE的访问和修改时间更新为当前时间”。所以基本上它改变了时间戳。

但是,您可以使用该命令创建一个名为 FILE 的空文件,因为正如手册页所述,“除非提供 -c 或 -h,否则不存在的 FILE 参数将被创建为空。”


那么创建这个新文件时会发生什么?

touch 命令与文件系统通信以创建指向将分配给该文件的磁盘区域的指针。但是,由于文件是空的,因此实际上不会向磁盘上的该区域写入任何内容。

有了这个文件系统指针,$ ls 或您的文件浏览器现在将在您的 PWD 中显示 FILE。

我不确定您所说的“是否创建了指向此文件的任何链接?”是什么意思

如果您指的是符号链接(symbolic link)或硬链接(hard link),那么据我所知不是。

关于linux - 在 Linux 上创建文件时发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25313967/

相关文章:

python - Flask 多处理在进程完成之前不会返回响应

c++ - 想要开发我自己的基本上会显示 HTML、Javascript 和 Flash 的小型 C++ 浏览器,从哪里开始?

java - 打开和 append 文件

linux - 如何查找文件中的第 n 个单词(Linux Shell)

javascript - 使用修改后的 .click 函数扩展 jQuery

javascript - Chrome touchenter 触摸离开

linux - 在尝试使用 ssh 设置时间时寻找匹配的 `"时出现意外的 EOF

linux - wget 附加唯一\定义的前缀

c++ - 来自文本文件的数据总和

c++ - 无法在 Hook 中获取 WM_TOUCH 消息