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

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

定义问题为:给定文件名

> touch 

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

> mktemp> mv $(mktemp) 

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

> echo -n > 

-n是使echo不输出换行

> cat /dev/null > 

借助空设备

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

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

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