为了账号安全,请及时绑定邮箱和手机立即绑定

急求!!!!为什么linux 创建文件是touch 而不是create

急求!!!!为什么linux 创建文件是touch 而不是create

慕神8447489 2019-11-01 20:55:05
好奇~为什么linux创建文件是touch而不是create
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

touch的作用本来不是创建文件,而是将指定文件的修改时间设置为当前时间。
就是假装“碰”(touch)了一下这个文件,假装文件被“修改”了,于是文件的修改时间就是被设置为当前时间。
这带来了一个副作用,就是当touch一个不存在的文件的时候,它会创建这个文件。
然后,由于touch已经可以完成创建文件的功能了,就不再需要一个单独的create了。
                            
查看完整回答
反对 回复 2019-11-01
?
PIPIONE

TA贡献1829条经验 获得超9个赞

@fefe回答的已经很好了。
我做点儿补充吧,这个命令最早出现在UnixVersion7中,是KenThompson和DennisRichie两位大神写的一个工具。至于为什么叫这个名字,外网上也有很多讨论,但两位当事人并没有回应过。
如果看下Unix/Linux源码,你会发现touch里有这么一行代码:
open("t",O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK,0666)=3
其中的O_CREAT常量就是文件不存在就创建的原因。
                            
查看完整回答
反对 回复 2019-11-01
  • 2 回答
  • 0 关注
  • 1239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信