首页 >> 生活经验 >

问linux 创建文件方法 多种方式实操详解

2026-11-08 22:33:02

答

linux 创建文件方法主要包含 touch 重定向 echo cat heredoc vi 编辑器这几类主流方式,不同方式适用场景不一样,有的只生成空白文件,有的可以直接写入初始内容,日常运维写脚本配置文件都离不开这些操作。linux 系统是一切皆文件的设计理念,不管普通文本配置日志还是设备文件都属于文件范畴,创建文件本质就是在内核文件系统里分配 inode 节点,在对应目录下生成目录项记录。很多新手只会单一一种创建方式,遇到不同需求就会卡壳,比如快速建空文件选 touch 最合适,需要直接写入多行内容就适合 heredoc,需要边编辑边修改就用 vi 编辑器。学习的时候要理解每种方式底层差异,区分空文件和带内容文件的创建区别,还要掌握覆盖创建和追加创建的差别,避免执行之后原有文件内容被意外清空,下面分模块详细讲解每一种 linux 创建文件方法的用法参数和注意事项。

一 touch 命令创建空文件

这是最常用的 linux 创建文件方法,核心作用是创建空白文件,如果目标文件已经存在,touch 不会清空原有内容,只会更新这个文件的访问时间和修改时间戳,这一点是很多新手容易混淆的重点。

项目说明
基础语法touch 文件名
批量创建touch 文件 1 文件 2 文件 3
指定路径创建touch 目录路径文件名
常用参数t 自定义时间戳,a 只更新访问时间,m 只更新修改时间

实操步骤,第一步打开终端,第二步切换到想要保存文件的目录,第三步输入 touch test.txt 回车,执行完成之后可以输入 ls 查看,目录里面就会出现这个新文件。如果需要一次性创建多个文件,直接在后面追加多个文件名,适合批量初始化配置文件。如果文件已经存在,再次执行 touch,文件里面原有文字不会消失,仅仅更新时间属性,这个特性可以用来批量刷新文件时间。

二 输出重定向创建文件

重定向是 shell 自带能力,不需要额外安装命令,依靠大于号符号实现 linux 创建文件方法,分为单大于号覆盖创建,双大于号追加创建,这里重点说明覆盖创建,执行之后如果同名文件已经存在,原有内容会直接清空,这是风险点。

项目说明
基础语法> 文件名
带内容创建echo 内容 > 文件名
多行写法printf 内容 > 文件名
特点执行立刻创建文件,文件初始可以为空,也可以直接写入文字

实操步骤,第一步确认当前目录,第二步输入 > newfile 回车,就得到一个空白文件。如果需要创建同时写入文字,输入 echo hello > test.txt,执行之后文件里面就自带 hello 内容。这个方法优点是简洁,缺点是同名覆盖风险高,生产环境使用前一定要确认目标文件是否已经有重要数据。

三 cat 结合 heredoc 创建带内容文件

这个 linux 创建文件方法适合一次性写入多行文本,写配置文件 shell 脚本非常方便,不需要进入编辑器,在终端一次性把多行内容全部写入新文件。

项目说明
基础语法cat < 文件名
结束标记EOF 可以自定义,只要前后标记保持一致
追加模式cat <> 文件名
特点支持多行文本,适合长文本初始化

实操步骤,第一步输入 cat < app.conf,第二步回车之后逐行输入文件里面的内容,第三步单独一行输入 EOF 回车,文件就创建完成并且保存全部内容。这种方式在 shell 脚本里面大量使用,自动化部署的时候自动生成配置文件,不需要人工打开编辑器。注意结束标记必须单独占一行,前面不能有空格,否则系统识别不到结束标记,会一直等待输入。

四 文本编辑器创建文件

通过 vi vim nano 这类编辑器实现 linux 创建文件方法,适合创建之后马上编辑修改内容,是交互式创建方式,创建和编辑合二为一。

编辑器创建命令特点
vivi 文件名系统自带,所有发行版都有
vimvim 文件名vi 增强版,带语法高亮
nanonano 文件名操作简单,新手友好

实操步骤,以 vi 举例,第一步输入 vi test.sh 回车,此时进入编辑器界面,文件还没有正式保存,第二步按 i 进入插入模式,输入文件内容,第三步按 esc 退出插入模式,输入冒号 wq 回车保存退出,此时文件才真正创建到磁盘。这里关键点,没有执行保存退出操作,只是打开界面不会生成文件,这点和 touch 重定向立刻生成文件有本质区别。

五 其他小众创建文件方法

除上面主流方式,还有一些场景会用到的 linux 创建文件方法,了解之后可以拓宽处理思路。

1 cp 命令,复制已有文件生成新文件,相当于以源文件内容为模板创建新文件,语法 cp 源文件 新文件名,适合需要复用模板配置的时候使用。

2 dd 命令,底层块设备创建,一般用来生成指定大小的测试文件,语法 dd if=/dev/zero of=testfile bs=1M count=100,生成 100M 大小空测试文件,用来测试磁盘读写性能。

3 tee 命令,tee 文件名,配合管道创建文件,一边输出到终端一边写入文件,适合命令输出结果直接生成新文件。

六 各类创建方法对比总结

创建方式是否空文件是否交互式同名文件是否覆盖最佳使用场景
touch是否不覆盖,只更新时间批量创建空白文件
重定向 >可以空也可以带内容否直接覆盖简短单行内容创建
cat heredoc自带多行内容否直接覆盖脚本自动生成多行配置
vi vim nano可空可编辑内容是保存才生成创建同时编辑修改
cp继承源文件内容否覆盖目标模板复制创建
dd是,指定大小否覆盖目标大体积测试文件

【常见问题】

问题 1 linux 创建文件方法里面 touch 创建文件为什么没有报错但是文件不存在

回答 1 linux 创建文件方法使用 touch 的时候,最常见原因是当前目录没有写入权限,或者目标上级目录本身不存在,touch 不会自动递归创建上级目录,所以执行之后无法生成文件,需要提前切换到有权限目录,或者先用 mkdir 创建上层目录再执行 touch。

问题 2 linux 创建文件方法使用大于号重定向会不会清空原有同名文件

回答 2 linux 创建文件方法当中单大于号重定向属于覆盖模式,如果同名文件已经存在,执行之后原有内容会直接清空,如果不想清空原有内容,应该使用双大于号追加模式,只在文件末尾新增内容,不会覆盖原有数据。

问题 3 linux 创建文件方法用 vi 的时候为什么输入完内容退出没有生成文件

回答 3 linux 创建文件方法使用 vi 编辑器属于交互式创建,只打开界面不执行保存操作是不会落盘生成文件,必须按下 esc 之后输入 wq 保存退出,才会真正把文件写入磁盘,如果输入 q 直接退出,文件不会被创建。

问题 4 linux 创建文件方法能不能一次性创建带多级目录下的文件

回答 4 linux 创建文件方法里面 touch 和重定向默认不能自动创建不存在的上级目录,如果需要在多级新目录下创建文件,需要先执行 mkdir p 递归创建目录,之后再执行对应的创建文件命令,否则会提示目录不存在。

【免责申明】

本文介绍 linux 创建文件方法相关内容仅作为技术学习参考,部分创建方式存在同名覆盖风险,操作失误可能覆盖原有重要配置与数据,请优先在测试环境练习,生产环境操作前做好备份,本文不对任何误操作带来的数据损失承担责任。

 

相关阅读

最新文章