0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Linux清空文件內(nèi)容

CHANBAEK ? 來(lái)源:myfreax ? 作者:myfreax ? 2022-12-06 17:11 ? 次閱讀

在某些情況下,您可能希望將現(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命令。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 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
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)教Labview如何實(shí)現(xiàn)清空一個(gè)指定的文件

    時(shí)自動(dòng)清理)需要清空這個(gè)文件夾目前清空文件夾這個(gè)不會(huì)實(shí)現(xiàn)。。?;蛘邔?duì)于上述我的想法大神們有什么更好的辦法?
    發(fā)表于 08-01 20:36

    如何清空數(shù)組內(nèi)容?

    我用插入元素加for循環(huán)的方法生成數(shù)組,想每次用完之后清空再使用。我用了條件結(jié)構(gòu)把空數(shù)組輸入到數(shù)組中,數(shù)組顯示為零,但是再次使用數(shù)組的時(shí)候原來(lái)的值還是沒(méi)有清除,數(shù)據(jù)又接在原數(shù)組后面繼續(xù)生成,請(qǐng)問(wèn)怎么才能徹底刪除數(shù)組中的內(nèi)容?
    發(fā)表于 04-23 04:33

    求教,labview怎么清空文本文件中的內(nèi)容。

    求教,labview怎么清空文本文件中的內(nèi)容。重新運(yùn)行程序后,清空文本文件中原有的字符。
    發(fā)表于 11-23 14:59

    Linux下如何清空或刪除大文件和大量文件

    快速刪除大文件1. 通過(guò)重定向到 Null 來(lái)清空文件內(nèi)容清空或者讓一個(gè)文件成為空白的最簡(jiǎn)單方式,是像下面那樣,通過(guò) shell 重定向 n
    發(fā)表于 07-11 07:50

    Linux文件內(nèi)容查詢(xún)命令

    Linux文件內(nèi)容查詢(xún)命令 Linux文件內(nèi)容查詢(xún)命令  grep、fgrep和egrep命令
    發(fā)表于 01-18 12:45 ?833次閱讀

    Linux基礎(chǔ)教程之如何在linux不解壓tar.gz文件查看的文件大小資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux基礎(chǔ)教程之如何在linux不解壓tar.gz文件查看的文件
    發(fā)表于 10-31 17:06 ?2次下載

    何在Win7與linux雙系統(tǒng)時(shí)卸載linux詳細(xì)方法概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在Win7與linux雙系統(tǒng)時(shí)卸載linux詳細(xì)方法概述
    發(fā)表于 11-07 15:49 ?21次下載
    如<b class='flag-5'>何在</b>Win7與<b class='flag-5'>linux</b>雙系統(tǒng)時(shí)卸載<b class='flag-5'>linux</b>詳細(xì)方法概述

    何在Linux下如何刪除大量文件的詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在Linux下刪除大量文件的過(guò)程詳細(xì)資料概述免費(fèi)下載。
    發(fā)表于 11-14 17:10 ?7次下載

    LINUX系統(tǒng)教程之如何在Linux系統(tǒng)下進(jìn)行編程

    本文檔的主要內(nèi)容詳細(xì)介紹的是LINUX系統(tǒng)教程之如何在Linux系統(tǒng)下進(jìn)行編程主要內(nèi)容包括了:程序開(kāi)發(fā)過(guò)程 ,
    發(fā)表于 12-18 19:09 ?9次下載

    怎樣恢復(fù)回收站已清空文件

    回收站被清空了怎么辦?網(wǎng)上經(jīng)常能看到一些方法,比如修改注冊(cè)表、下載某收費(fèi)軟件等等。但這些方法,要么太麻煩,要么需要用戶(hù)花錢(qián)。最關(guān)鍵的是,你花了錢(qián),卻未必能找回自己想要的東東。
    的頭像 發(fā)表于 03-24 10:06 ?3537次閱讀

    虛擬機(jī):Linux查看tar包文件內(nèi)容的方法

    虛擬機(jī):Linux查看tar包文件內(nèi)容的方法
    的頭像 發(fā)表于 06-22 16:49 ?6662次閱讀

    何在Linux中查看隱藏文件

    在windows可以查看隱藏的文件。在Linux中也可以查看隱藏文件且非常容易。要查看隱藏文件運(yùn)行`ls -a`命令即可。
    的頭像 發(fā)表于 01-04 17:31 ?1.6w次閱讀

    何在Linux上使用Pigz來(lái)更快地壓縮文件

    Pigz是一款快速壓縮文件的工具,它能夠使用多個(gè)CPU核心進(jìn)行壓縮,使得壓縮速度得到了極大的提升。在本文中,我們將介紹如何在Linux上使用Pigz來(lái)更快地壓縮文件。
    的頭像 發(fā)表于 05-12 16:42 ?2156次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>上使用Pigz來(lái)更快地壓縮<b class='flag-5'>文件</b>

    恒訊科技分析:如何在Linux上使用rm命令刪除文件和目錄?

    本指南展示了如何在Linux中使用rm命令行刪除文件、目錄和其他內(nèi)容?
    的頭像 發(fā)表于 06-09 17:02 ?1140次閱讀

    java如何清空obj文件內(nèi)容

    清空一個(gè)文件內(nèi)容可以通過(guò)以下步驟來(lái)完成。 首先,你需要指定要清空文件的路徑。你可以使用Java的File類(lèi)來(lái)操作
    的頭像 發(fā)表于 11-21 10:29 ?442次閱讀