我曾经以此为面试题,以测试技术人员对操作系统及指令的理解程度。
建立空文件,看上去没有意义,而在实际工作中仍然有实际的作用。比如作为驱动事件或标志文件,其实作为文件实体,文件本身已经在操作体统中体现了存在的意义,并且文件名和属性也包含有大量信息供应用逻辑使用。
定义问题为:给定文件名
> 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可以省略)
当然 ,如果作为面试题,使用编辑器,拷贝,等方法都可以算作解决问题的方案,这里不作讨论
时间: 2024-10-22 05:21:22