在 Bash
中,有多種將文本附加到文件的方法。
要將文本附加到文件,您需要對其具有寫權限。 否則,您將收到一個被拒絕的權限錯誤。
( 使用重定向操作符(>>)
重定向允許您捕獲命令的輸出,並將其作為輸入發送到另一個命令或文件。 重定向運算符將輸出追加到給定文件。
您可以使用許多命令將文本打印到標准輸出並將其重定向到文件,其中 echo
和 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
另一種將文本附加到文件的方法是使用 Here 文檔(Heredoc)。 它是一種重定向類型,允許您將多行輸入傳遞給命令。
例如,您可以將內容傳遞給 cat
命令,並將其附加到文件中:
cat « EOF » file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF
cat filename > file.txt
你可以將任何命令的輸出附加到文件中:
date +"Year: %Y, Month: %m, Day: %d" >> file.txt
當使用重定向附加到文件時,請注意不要使用操作符覆蓋重要的現有文件。
方法附加到文件中tee Command 命令
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 一起寫入。
要將文本附加到沒有寫權限的文件,請在 tee 之前預置 sudo,如下所示:
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 命令。