本篇內(nèi)容主要講解“怎么用重定向操作符和tee命令將文本寫入Bash中的文件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么用重定向操作符和tee命令將文本寫入Bash中的文件”吧!
專注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)臨邑免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
使用重定向運(yùn)算符寫入文件
在Bash中,輸出的重定向使您可以捕獲命令的輸出并將其寫入文件。
重定向并將輸出寫入文件的一般格式如下:
output > filename output >> filename
>重定向操作符將輸出寫入給定的文件。如果文件存在,它將被截?cái)酁榱汩L(zhǎng)度。否則,將創(chuàng)建文件。使用這個(gè)操作符時(shí)要格外小心,因?yàn)槟憧赡軙?huì)覆蓋一個(gè)重要的文件。
>>重定向操作符將輸出追加到指定的文件。如果文件不存在,則創(chuàng)建該文件。
您需要對(duì)該文件具有寫權(quán)限。否則,您將收到一個(gè)權(quán)限被拒絕的錯(cuò)誤。
這是一個(gè)簡(jiǎn)單的示例,顯示了如何將echo命令的輸出重定向到文件:
linuxmi@linuxmi:~$ echo "welcome to www.linuxmi.com" > linuxmi.txt
為了防止覆蓋現(xiàn)有文件,請(qǐng)使用set內(nèi)置功能啟用“ noclobber”選項(xiàng):
linuxmi@linuxmi:~$ set -o noclobber linuxmi@linuxmi:~$ echo "welcome to www.linuxmi.com" > linuxmi.txt
輸出如下:
bash: linuxmi.txt:無(wú)法覆蓋已存在的文件
>|操作符允許你覆蓋Bash的" noclobber "選項(xiàng):
linuxmi@linuxmi:~$ set -o noclobber linuxmi@linuxmi:~$ echo "welcome to www.linuxmi.com" >| linuxmi.txt
>>操作符將輸出追加到文件的末尾,而不是覆蓋文件:
linuxmi@linuxmi:~$ echo "welcome to www.linuxmi.com" >> linuxmi.txt
使用printf命令創(chuàng)建一個(gè)復(fù)雜的輸出:
printf "Hello, I'm %s.\n" $USER > Linuxmi.com.txt
如果要將多個(gè)行寫入文件,請(qǐng)參考Here document(Heredoc)重定向。
例如,您可以將內(nèi)容傳遞給cat命令并將其寫入文件:
cat << EOF > linuxmi.com.txt
當(dāng)前的工作目錄是: $PWD
您以以下身份登錄 $(whoami)
EOF
要附加這些行,在文件名之前用>>修改>:
cat << EOF >> linuxmi.txt
當(dāng)前的工作目錄是: $PWD
您以以下身份登錄 $(whoami)
EOF
您可以將任何命令的輸出寫入文件:
linuxmi@linuxmi:~$ date +"Year: %Y, Month: %m, Day: %d" > xxvi.txt
date命令的輸出將被寫入文件。
使用tee命令寫入文件
tee命令從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),并同時(shí)向標(biāo)準(zhǔn)輸出和一個(gè)或多個(gè)文件寫入數(shù)據(jù)。
linuxmi@linuxmi:~$ echo "welcome to www.linuxmi.com" | tee linuxmi.txt
該tee命令的默認(rèn)行為是覆蓋指定文件,與>操作員相同。要將輸出附加到文件,請(qǐng)使用-a(--append)選項(xiàng)調(diào)用命令:
linuxmi@linuxmi:~$ echo "welcome to www.linuxmi.com" | tee -a linuxmi.com.txt
如果您不希望tee寫入標(biāo)準(zhǔn)輸出,則可以將其重定向到/dev/null:
linuxmi@linuxmi:~$ echo "welcome to www.linuxmi.com" | tee www.linuxmi.com.txt >/dev/null
要將文本寫到多個(gè)文件中,請(qǐng)指定文件作為tee命令的參數(shù):
linuxmi@linuxmi:~$ echo "welcome to www.linuxmi.com" | tee file_1.txt file_2.txt file_3.txt
該tee命令的另一個(gè)優(yōu)點(diǎn)是,您可以將其與sudo其他用戶擁有的文件結(jié)合使用并寫入其中。要將文本追加到您沒有寫許可權(quán)的文件中,請(qǐng)sudo在之前加上tee:
linuxmi@linuxmi:~$ echo "welcome to www.linuxmi.com" | sudo tee linuxmi.txt
echo命令輸出作為輸入傳遞給tee, tee將提升sudo權(quán)限并將文本寫入文件。
總結(jié)
在Linux中,要將文本寫入文件,請(qǐng)使用>和>>重定向運(yùn)算符或tee命令。
到此,相信大家對(duì)“怎么用重定向操作符和tee命令將文本寫入Bash中的文件”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!