Bash:附加到文件

在Bash中,有多种方法可以将文本追加到文件中。 本文介绍了其中一些。

要将文本追加到文件,您需要具有写入权限。 否则,您将收到一个权限被拒绝的错误。

使用重定向操作符附加到文件(>>)#

重定向允许您捕获命令的输出,并将其作为输入发送到另一个命令或文件。 的 >> 重定向运算符将输出附加到给定文件。

您可以使用许多命令将文本打印到标准输出并将其重定向到文件,其中包括 echoprintf 是最常用的。

要将文本追加到文件,请在重定向运算符后指定文件名:

echo "this is a new line" >> file.txt

当与 -e 选择 echo 命令解释反斜杠转义的字符,例如换行符 n

echo -e "this is a new line nthis is another new line" >> file.txt

要产生更复杂的输出,请使用 printf 命令,该命令可用于指定输出的格式:

printf "Hello, I'm %s.n" $USER >> file.txt

将文本追加到文件的另一种方法是使用Here文档(Heredoc)。 这是一种重定向类型,它允许您将多行输入传递给命令。

例如,您可以将内容传递给 cat 命令并将其附加到文件中:

cat«EOF»file.txt当前工作目录为:$ PWD您登录为:$(whoami)EOF

您可以将任何命令的输出附加到文件中。 这是一个例子 date 命令:

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

使用重定向附加到文件时,请注意不要使用 > 操作员覆盖重要的现有文件。

使用 tee 命令#

tee 是Linux中的命令行实用程序,可从标准输入读取并同时写入标准输出和一个或多个文件。

默认情况下, tee 命令将覆盖指定的文件。 要将输出附加到文件,请使用 tee-a--append) 选项:

echo "this is a new line"  | tee -a file.txt

如果你不想 tee 写入标准输出,将其重定向到 /dev/null

echo "this is a new line"  | tee -a file.txt >/dev/null

使用的优势 tee 指挥 >> 运算符是 tee 允许您一次将文本追加到多个文件,并结合其他用户写入其他用户拥有的文件 sudo

要将文本追加到您没有写权限的文件中,请添加前缀 sudo 之前 tee 如下所示:

echo "this is a new line" | sudo tee -a file.txt

tee 接收的输出 echo 命令,提升sudo权限,然后写入文件。

要将文本附加到多个文件中,请将文件指定为 tee 命令:

echo "this is a new line"  | tee -a file1.txt file2.txt file3.txt

结论#

在Linux中,要将文本附加到文件中,请使用 >> 重定向运算符或 tee 命令。

如果您有任何疑问或反馈,请随时发表评论。

bash终端

Sidebar