如何快速清空 Linux 中的大文件?
文章轉(zhuǎn)載:來(lái)自網(wǎng)絡(luò),版權(quán)歸原作者所有,侵刪
1. 通過(guò)重定向到null清空文件內(nèi)容
使用 shell 重定向null(不存在的對(duì)象)到文件的最簡(jiǎn)單方法來(lái)清空文件內(nèi)容
#?>?access.log??
2.使用true命令重定向清空文件
這里我們將使用一個(gè)符號(hào),:是一個(gè)shell內(nèi)置命令,本質(zhì)上等同于true命令
另一種方法是將:或true內(nèi)置命令的輸出重定向到文件
#?:?>?access.log??
OR???
#?true?>?access.log
3. 使用帶有 /dev/null 的 cat/cp/dd 應(yīng)用程序清空文件
在 Linux 中,null設(shè)備主要用于丟棄進(jìn)程不需要的輸出流,或者作為輸入流。這通常是通過(guò)重定向機(jī)制完成的。
/dev/null設(shè)備文件是一個(gè)特殊文件,它會(huì)吞噬發(fā)送給它的任何輸入,或者它的輸出與空文件的輸出相同。
此外,你可以通過(guò)/dev/null使用cat 命令將輸出重定向到文件作為輸入來(lái)清空文件的內(nèi)容
#?cat?/dev/null?>?access.log
也可以使用cp 命令將文件內(nèi)容清空
#?cp?/dev/null?access.log??
在下面的命令中,if指的是輸入文件,of指的是輸出文件。
#?dd?if=/dev/null?of=access.log??
4. 使用 echo 命令清空文件
在這里,你可以使用帶有空字符串的echo 命令并將其重定向到文件
#?echo?""?>?access.log??
OR??
#?echo?>?access.log??
空字符串與 null 不同。一個(gè)字符串是一個(gè)對(duì)象,它可能是空的。而null意味著一個(gè)不存在的對(duì)象。
因此將上面的echo 命令的輸出重定向到文件中,并使用cat 命令查看文件內(nèi)容時(shí),會(huì)打印一個(gè)空行
要發(fā)送一個(gè)空輸出到文件,使用該標(biāo)志-n告訴echo 不輸出換行符。
#?echo?-n?""?>?access.log??
5. 使用 truncate 命令清空文件
truncate命令將文件的大小縮小或擴(kuò)展到定義的大小。
你可以將它與-s指定文件大小的選項(xiàng)一起使用。要清空文件內(nèi)容使用-s 0參數(shù)。
#?truncate?-s?0?access.log
- END -
?推薦閱讀? 31天拿下K8s含金量最高的CKA+CKS證書! ?
比 netstat 好用?Linux 網(wǎng)絡(luò)狀態(tài)工具 ss 詳解 Linux Shell 腳本編程最佳實(shí)踐 做了這么多年運(yùn)維工作,現(xiàn)在才看清職業(yè)方向 一篇文章講清楚云原生圖景及發(fā)展路線 Gitlab+Jenkins+k8s+Helm 的自動(dòng)化部署實(shí)踐 K8s kubectl 常用命令總結(jié)(建議收藏) 一名運(yùn)維小哥對(duì)運(yùn)維規(guī)則的10個(gè)總結(jié) K8s運(yùn)維錦囊,19個(gè)常見故障解決方法 Linux 系統(tǒng)日常巡檢腳本 終于明白了 DevOps 與 SRE 的區(qū)別! 編寫 Dockerfile 最佳實(shí)踐 搭建一套完整的企業(yè)級(jí) K8s 集群(kubeadm方式)
點(diǎn)亮,服務(wù)器三年不宕機(jī)


