在Linux下创建空文件的方法

我曾经以此为面试题,以测试技术人员对操作系统及指令的理解程度。

建立空文件,看上去没有意义,而在实际工作中仍然有实际的作用。比如作为驱动事件或标志文件,其实作为文件实体,文件本身已经在操作体统中体现了存在的意义,并且文件名和属性也包含有大量信息供应用逻辑使用。


定义问题为:给定文件名


> touch <filename>

这是最为通常和直接的方式。有一个问题是在Linux以外的类Unix系统有可能行不通,例如Solaris系统。


> mktemp
> mv $(mktemp) <filename>

mktemp可以指定路径,和文件名模板,但文件名模板中必定包括XXXXXX式样,缺省路径是在/tmp,生成文件后需要自行转移,如第二行的衍生指令,但通用性比touch要强


> echo -n > <filename>

-n是使echo不输出换行


> cat /dev/null > <filename>

借助空设备


> dd if=/dev/zero of=<filename> bs=1 count=0

同样,需要借助zero设备,使用dd指令方式,通用性更强,但效率更低。(bs可以省略)


当然 ,如果作为面试题,使用编辑器,拷贝,等方法都可以算作解决问题的方案,这里不作讨论

本文出自 “技术改变生活” 博客,请务必保留此出处http://btvnlue.blog.51cto.com/9578271/1617288

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。