如何在Linux创建文件

在Linux中,我们可以从命令行或桌面文件管理器创建一个新文件。对于定期使用Linux的任何人来说,知道如何创建新文件都是一项重要技能

6 min read
By myfreax
如何在Linux创建文件

在Linux中,我们可以从命令行或桌面文件管理器创建一个新文件。对于一直使用Linux的人来说,知道如何创建新文件都是一项重要技能。

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

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

使用touch命令创建文件

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

如果touch参数指定的文件不存在,则上面的命令将创建该文件,否则,它将更改文件的时间戳。

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

以touch命令将会要创建新文件file1.txt,如果file1.txt 文件存在,则更新文件file1.txt时间戳:

touch file1.txt #创建一个文件
touch file1.txt file2.txt file3.txt #创建多个文件

使用重定向运算符创建文件

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

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

而使用重定向操作符>>则不会覆盖已经存在的文件,而是追加已经存在的文件中。使用重定向操作符,是Linux中创建新文件的最短命令。

当你运行> file1.txt命令按下回车键enter时,此时将允许你输出文本内容。然不是马上就退出。当你完成输入后,按ctrl+d两次退出命令。

你可以使用ctrl+c退出重定向创建文件的方法,ctrl+cctrl+d不同之处在于ctrl+c按一次即可退出,而ctrl+d是两次,ctrl+c至于是否会丢失内容,暂时没发现。

要使用重定向操作符创建文件,只需在重定向操作符之后指定要创建的文件名即可以下重定向操作符将要创建文件file1.txt

> file1.txt
在此处出入内容

>> file1.txt
在此处出入内容

记得使用ctrl+c或者ctrl+d退出重定向操作符。

使用cat命令创建文件

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

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

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

cat > file1.txt

使用echo命令创建文件

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

要使用echo创建新文件,后跟要输入到文件的文本内容,然后使用重定向操作符>>>,将标准输出写入到要创建的文件中。

如果只需要使用echo创建一个空文件,则可省略输入文本内容,而是echo一个空的字符串到文件。

以下echo命令将会创建文件file1.txt

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

使用Heredoc创建文件

heredoc翻译过来就是here文档,又称作heredoc、hereis、here-string或here-script,是一种在shell的命令。

如sh、csh、ksh、bash、PowerShell和zsh和程序语言里定义一个字符串的方法。它可以保存文字里面的换行或是缩进等空白符。它允许你在字符串里执行变量插入和命令替换。

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

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

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

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

创建一个大文件

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

你可以使用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中创建新文件。如有疑问,请在下面发表评论。