在Linux,可以从命令行或文件管理器创建文件。对于使用 Linux 的用户来说,知道如何创建文件是一项重要技能。

要创建一个文件,你必须具有对当前目录的写权限。否则,你将收到一个权限被拒绝的错误。

当完成创建文件后,你可能需要验证文件是否创建成功,请运行 ls 命令确定文件是否存在。如需要查看文件内容请使用 cat 命令

touch 命令创建文件

touch 命令可以让你更新现有文件和目录的时间戳以及创建新文件。创建新的空文件的最简单方法是运行 touch 命令。

如果 touch 命令参数指定的文件不存在,touch 命令会创建文件,否则,它将修改已存在的文件时间戳。

touch 命令也可以同时创建多个文件。如需要创建多个文件,请在 touch 命令的参数指定多个文件名,并用空格进行分隔。

touch file1.txt 
touch file1.txt file2.txt file3.txt 

重定向操作符创建文件

重定向操作符允许你重定向命令的标准输出,并将其作为另一个命令或文件的输入。有两个重定向操作符可以将标准输出重定向到文件。

当使用重定向操作符创建文件时,如果文件不存在,文件将会被创建。如果使用重定向操作符 > 时,如果文件已经存在,文件将会被覆盖。

而使用重定向操作符 >> 则不会覆盖已经存在的文件,而是将命令的标准输出追加已经存在的文件中。

请使用快捷键ctrl+alt+t打开终端,运行命令 > file1.txt ,此时将允许你输出文本内容。而不是马上就退出。

当你完成输入后,按两次 ctrl+d 退出命令。也可以按快捷键 ctrl+c 退出重定向创建文件的方法。

> file1.txt
>> file1.txt

cat 命令创建文件

cat 命令主要用于查看和连接文件,但它也可以用于创建文件。使用 cat 命令创建文件的方式和使用重定向操作符一样。

使用 cat 命令这种创建文件的方式,在退出时,与使用重定向操作符一样。也是按 两次 ctrl+d 保存文件。

要使用 cat 命令创建文件,请运行 cat 命令,后跟重定向操作符 >>>,然后是要创建的文件名。完成输入后按ctrl+d两次保存文件。

cat > file1.txt

echo 命令创建文件

echo 命令的输出也可以使用输出重定向操作符 >>> 将 echo 命令的标准输出重定向到文件。

要使用 echo 命令创建文件,后跟要写入到文件的文本内容,然后选择一个你要使用输出重定向操作符>>>,最后是指定文件名称。

如果只是使用 echo 命令创建一个空文件,则可省略要写入的文本内容,echo 命令默认生成一个空的字符串。

echo "Some line" > file1.txt
echo > file1.txt #创建空文件

Heredoc 创建文件

heredoc 翻译过来就是 here 文档,又称作heredoc、hereis、here-string或here-script,是 Shell 内置命令。

当你要从 Shell 脚本创建包含多行文本,插入环境变量,运行命令的替换时,通常使用此方法。

Heredoc 只是定义一个shell的变量,它不会自动写入到文件。因此使用 Heredoc 创建文件时,还需要使用重定向操作符 >>>

例如要创建一个包含多行文本新文件file1.txt,执行$USER环境变量的插入,运行 pwd 命令的替换。

<< EOF > file1.txt
your user name is $USER
your workdir `pwd`
other line
EOF

dd 命令创建文件

有时,出于测试目的,您可能需要创建一个大文件。当您要测试驱动器的写入速度或测试网络下载速度时,此功能很有用。

可以使用 dd 命令或者 fallocate 命令创建大文件。dd 命令主要用于转存和复制文件。fallocate 命令用于为文件分配实际的磁盘空间。

以下两个命令是等价命令,dd,fallocate命令都将会创建一个大小为 1GB 的文件1G.test

dd if=/dev/zero of=1G.test bs=1 count=0 seek=1G

fallocate -l 1G 1G.test

结论

在本教程中,你已学习如何使用多个命令和输出重定向操作符,在Linux 终端创建新文件。如有疑问,请在下面发表评论。