在 Bash 中,有多种方法可以将文本附加到文件中。本文解释了其中一些。
要将文本附加到文件,您需要对其具有写入权限。否则,您将收到权限被拒绝的错误。
使用重定向运算符附加到文件 (>>
) #
重定向允许您捕获命令的输出并将其作为输入发送到另一个命令或文件。这>>
重定向运算符将输出附加到给定文件。
您可以使用许多命令将文本打印到标准输出并将其重定向到文件,例如echo
and printf
是最常用的。
要将文本附加到文件,请在重定向运算符后指定文件名:
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
将文本附加到文件的另一种方法是使用此处文档 (Heredoc)。它是一种重定向,允许您将多行输入传递给命令。
例如,您可以将内容传递给cat命令并将其附加到文件中:
cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as: $(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
before 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
命令。
如果您有任何问题或反馈,请随时发表评论。