在某些情況下,您可能希望將現(xiàn)有文件截?cái)?,即減少或者縮小文件的大小。清空文件比刪除文件后重新創(chuàng)建文件并設(shè)置正確的權(quán)限和所有權(quán)。更快,更容易。
還有一點(diǎn)就是,如果要?jiǎng)h除的文件已經(jīng)被其它進(jìn)程打開(kāi),如果你此時(shí)刪除文件可能會(huì)導(dǎo)致使用該文件的進(jìn)程沒(méi)有響應(yīng)。但你可以嘗試清空文件內(nèi)容。
本教程說(shuō)明如何在Linux 清空文件內(nèi)容。
truncate 命令清空文件
隨著時(shí)間的流逝,您的磁盤(pán)驅(qū)動(dòng)器可能會(huì)堆滿(mǎn)很多大型日志文件,這些日志文件會(huì)占用大量磁盤(pán)空間。
此時(shí),你可以運(yùn)行命令sudo truncate -s 0 /var/log/**/*.log
清空清空/var/log
目錄以.log結(jié)尾的文件。
另一個(gè)更好的選擇是使用logrotate
工具壓縮和刪除日志文件。
sudo truncate -s 0 /var/log/**/*.log
Shell 重定向清空文件
清空文件最簡(jiǎn)單,最常用的方法是使用Shell重定向操作符>
。使用重定向清空文件的命令是: > filename
。
:
返回零字節(jié)的空字符串,也可以理解為不產(chǎn)生任何輸出。重定向操作符>
將命令:
的輸出重定向到指定文件。
filename
是您要清空的文件。如果文件存在,它將被清空為零的大小,即空文件,否則創(chuàng)建零字節(jié)的文件。
現(xiàn)在大多數(shù)Shell程序,例如Bash或Zsh,都可以在重定向符號(hào)之前省略命令,因此你可以將: > filename
寫(xiě)成> filename
。
: > filename
> filename
除了:
命令,你還可以使用另一個(gè)不產(chǎn)生任何輸出的命令cat /dev/null
,/dev/null
是空設(shè)備文件。
然后使用重定向操作符>
重定向到你要清空的文件,例如命令cat /dev/null > filename
會(huì)清空文件filename
。
此外還可以使用echo
命令和-n
選項(xiàng)。-n
選項(xiàng)表示不輸出尾隨的換行符。例如命令echo -n > filename
cat /dev/null > filename
echo -n > filename
Sudo與Shell 重定向清空文件
要能夠清空文件,您需要對(duì)文件具有寫(xiě)權(quán)限。通常您可能會(huì)因?yàn)闄?quán)限問(wèn)題而使用 sudo
命令。
但是使用sudo提升權(quán)限不適用于重定向操作符>
,例如命令sudo : > /var/log/syslog
。
你的終端將會(huì)打印錯(cuò)誤消息bash: /var/log/syslog: Permission denied。
sudo : > /var/log/syslog
bash: /var/log/syslog: Permission denied
遇到此問(wèn)題時(shí)可以有幾種解決方案。第一種是使用sudo和sh
命令啟動(dòng)子shell運(yùn)行命令。
另一種解決方案是將命令的標(biāo)準(zhǔn)輸出通過(guò)管道傳遞給tee
命令,然后使用sudo
將提升權(quán)限運(yùn)行tee
命令晴空文件。例如命令: | sudo tee filename
。
sh
命令的-c
選項(xiàng)允許用戶(hù)指定要運(yùn)行的命令,命令將會(huì)shell的子進(jìn)程運(yùn)行。命令sudo sh -c '> filename'
創(chuàng)建shell子進(jìn)程運(yùn)行> filename
命令。
sudo sh -c '> filename'
: | sudo tee filename
結(jié)論
要在Linux 清空文件,請(qǐng)使用重定向操作符>
,后跟文件名或者使用truncate
命令。
-
Linux
+關(guān)注
關(guān)注
87文章
11207瀏覽量
208712 -
文件
+關(guān)注
關(guān)注
1文章
561瀏覽量
24671 -
命令
+關(guān)注
關(guān)注
5文章
676瀏覽量
21965 -
Shell
+關(guān)注
關(guān)注
1文章
363瀏覽量
23256
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論