在 Linux 上创建文件的 10 个方法

哈,你这是写技术文档呢?行吧,那我就按这个调调来唠唠。
不过说实话,你这开头有点像教科书,咱们聊点实际的。

上周有个客人问我,为啥他每次用echo "hello" > newfile.txt创建文件,结果文件里都是hello后面跟一串乱码。
后来我才发现,他用的系统是老版本的Debian,那家伙,echo命令居然有bug,加上引号和换行符会出问题。
所以你看,有时候用最简单的命令,也得知道它背后的实现原理。

好,咱们接着说创建文件的方法。
你列的这些工具确实都行,但用的时候得看场合:
1 . >> 重定向符:这玩意儿最简单,但别用它来创建大文件。
比如你跑个Python脚本输出日志,用script.log >> output.txt往里追加,这很方便。
但你真要用它创建一个几百MB的文件试试?卡死不说,效率也低得要命。
我上次有个监控脚本写错了,结果疯狂写日志,把整个系统盘快写满了,最后只能硬重启。

2 . touch命令:这绝对是Linux运维的万金油。
不光创建文件,更新时间戳、判断文件是否是软链接这些都靠它。
我经常用它来制造一些"幽灵文件",比如某个服务检查配置文件是否存在,我用touch /etc/service_not_exists把它造出来,服务就以为配置对了,结果不出意外就出错了。
哈哈,开玩笑的,主要是为了测试。

3 . echo命令:内置是内置,但用它创建文件也有讲究。
像上面说的Debian那个bug,还有macOS系统下echo -n和echo的区别。
我一般用echo "content" > filename,但如果你要在文件里存换行符,就得用echo -e "\n"或者echo -e "line1 \nline2 "。
别小看这些细节,踩坑的时候都是这些小地方。

4 . cat命令:这命令主要是看内容,直接用它创建文件有点奇怪,除非你用cat /dev/null > newfile来创建一个空文件。
但说实话,touch filename更快。

5 . printf命令:比echo更灵活,支持格式化输出。
我偶尔用它来创建带特定格式的文件,比如JSON或者XML。
但平时用得不多,echo够用了。

6 . vi/vim和nano:这两个是Linux的标配编辑器。
vim功能强大是强大,但学起来是真头疼,特别是对于新手。
我带过几个实习生,没几个能搞明白vim的普通模式和命令模式切换的。
nano就友好多了,界面简单,基本操作跟Word差不多,就是启动慢一点。
我一般写配置文件或者临时造个脚本就用nano。
但你要是得用vim插播个命令模式才能干点活,那确实得学学。

7 . head和tail:这两个命令是看文件头尾的,直接用来创建文件?别逗了。
最多是配合head -c 1 filename创建一个1 字节的文件,但谁会干这种事?除非你要测试某个程序对空文件的处理。

8 . truncate命令:这玩意儿最适合创建特定大小的文件。
比如你需要一个1 GB的文件来测试磁盘IO,用truncate -s 1 G h3file.bin比一直用echo或者cat /dev/zero快多了。
我上次给数据库准备测试数据,就是用这个造的大文件。

你看,同样是创建文件,用touch简单,用truncate高效,用nano灵活,关键看你想要啥效果。
你写这个列表是帮管理员快速查找工具对吧?但真要用,还得知道每个工具的脾气。
就像开车,知道有方向盘、油门、刹车就行了,但具体在高速公路上超车和在市中心掉头,得懂技巧。

反正你看着办吧,这些工具都挺实用的,但别死记硬背,知道什么时候用哪个才是关键。
我还在想这个问题,为啥现在新来的运维都喜欢用echo,哪怕是创建空文件,也不愿意多打一个字符touch。
这部分我没亲历,得问问他们。

linux文件创建命令是什么

说白了,Linux里创建文件就三种常用命令,选对场景能省不少事儿。

先说最重要的vi/vim,这个是干啥的?去年我们跑那个监控系统,有个脚本需要临时修改配置,老员工直接打开vi配置文件,改完:w保存就完事了。
但你要是光输入:q退出,那文件根本没生成。
这个适合需要手动编辑内容的场景,但说实话挺坑的,新手容易忘保存。
我一开始也以为按冒号就行,后来发现不对,得先按Esc再输入:w才行。

另外一点是touch命令,去年我们清理日志临时文件,直接用touch一天删几百个,比手动创建快太多了。
它专门干两件事:要么更新文件时间戳,要么直接创建空文件。
比如你有个备份脚本,需要每天生成个空文件做标记,touch就完美。
这个点很多人没注意,touch创建的文件是空的,但可以指定权限。

还有个细节挺关键的,echo配合重定向用起来更灵活。
我们去年搞那个自动化部署,需要创建带默认信息的配置文件,直接echo "default config" > config.txt,文件和内容瞬间搞定。
但得小心,echo后面的>是覆盖写,想追加得用>>。
这个适合快速生成带内容的文件,比如创建日志文件时直接写入时间戳。

等等,还有个事,这三种命令在Dell G3 这种老电脑上都能用,但具体场景得选对。
比如频繁更新的配置文件用vi,临时标记用touch,一次性生成带内容的脚本用echo。

建议多练练,触类旁通后你会发现,文件操作其实就这几招,关键看怎么组合。

Linux命令如何新建文件

结论: Linux新建文件: 1 . touch命令:touch testfile 创建空文件。
2 . touch选项:-a, -c, -m, -t 调整时间。
3 . touch创建多个文件:touch file1 file2 file3 4 . 重定向符号:> 创建或清空文件,>> 追加内容。