一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何在Linux使用truncate命令將文件縮小或擴(kuò)展到指定的大小

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-06 17:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在某些情況下,您可能希望將現(xiàn)有文件截?cái)?,即減少或者縮小文件的大小。簡(jiǎn)單來說,截?cái)辔募馕吨鴦h除文件內(nèi)容而不刪除文件。

截?cái)辔募葎h除文件后重新創(chuàng)建文件并設(shè)置正確的權(quán)限和所有權(quán)。更快,更容易。

還有一點(diǎn)就是,如果要?jiǎng)h除的文件已經(jīng)被其它進(jìn)程打開,如果你此時(shí)刪除文件可能會(huì)導(dǎo)致使用該文件的進(jìn)程沒有響應(yīng)。但你可以嘗試將文件截?cái)唷?/p>

教程說明如何在Linux使用truncate命令將文件縮小或擴(kuò)展到指定的大小。

truncate 命令截短/清空/填充文件

truncate命令的-s選項(xiàng)可讓您將文件的大小縮小或擴(kuò)展到指定的大小。文件大小參數(shù)一個(gè)整數(shù),該整數(shù)是任何數(shù)*1024。你也可以整數(shù)后面指定可選的單位參數(shù)。

單位可以是K,M,G,T,P,E,Z,Y或者是KB,MB,GB等。此外大小參數(shù)還可以指定一個(gè)前綴,如下。

+加號(hào)表示增加的大小, -減少指定的大小。還可以是大于<或者小于號(hào)>,增加或者減少指定大小,使用/ 進(jìn)行四舍五入,%向上取整。

如果文件大于指定的大小,則會(huì)刪除額外的數(shù)據(jù)。如果文件較小,則對(duì)其進(jìn)行擴(kuò)展到指定大小,并且擴(kuò)展部分的讀數(shù)為零字節(jié)。

truncate -s 0 filename命令將文件的縮小的零的大小。命令truncate -s +1M file1會(huì)在原來基礎(chǔ)再增加1M大小。

truncate -s 0 filename
truncate -s +1M filename
ls -al filename

truncate 命令清空日志文件

隨著時(shí)間的流逝,您的磁盤驅(qū)動(dòng)器可能會(huì)堆滿很多大型日志文件,這些日志文件會(huì)占用大量磁盤空間。

此時(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寫成> 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ì)文件具有寫權(quán)限。通常您可能會(huì)因?yàn)闄?quá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

遇到此問題時(shí)可以有幾種解決方案。第一種是使用sudo和sh命令啟動(dòng)子shell運(yùn)行命令。

另一種解決方案是將命令的標(biāo)準(zhǔn)輸出通過管道傳遞給tee命令,然后使用sudo將提升權(quán)限運(yùn)行tee命令晴空文件。例如命令: | sudo tee filename。

sh命令的-c選項(xiàng)允許用戶指定要運(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中截?cái)辔募?,?qǐng)使用重定向操作符>,后跟文件名或者使用truncate命令。

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

    關(guān)注

    87

    文章

    11509

    瀏覽量

    213707
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    579

    瀏覽量

    25358
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    737

    瀏覽量

    22873
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    372

    瀏覽量

    24204
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    何在Linux中使用htop命令

    本文介紹如何在 Linux 中使用 htop 命令。
    的頭像 發(fā)表于 12-04 14:45 ?3157次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>中使用htop<b class='flag-5'>命令</b>

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

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

    Linux文件的復(fù)制、刪除和移動(dòng)命令

    Linux文件的復(fù)制、刪除和移動(dòng)命令 Linux文件的復(fù)制、刪除和移動(dòng)命令  cp
    發(fā)表于 01-18 12:45 ?1330次閱讀

    Linux改變文件目錄的訪問權(quán)限命令

    Linux改變文件目錄的訪問權(quán)限命令 Linux改變文件
    發(fā)表于 01-18 12:46 ?1260次閱讀

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

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

    何在Linux使用pidof命令

    `pidof`是一個(gè)命令行程序,可讓您找到正在運(yùn)行程序的進(jìn)程ID。在教程中,我們說明如何在Linux 使用pidof命令
    的頭像 發(fā)表于 12-05 17:01 ?2670次閱讀

    何在Linux使用touch命令

    Linux touch命令用于更改文件時(shí)間戳。但touch命令的最常見用法是創(chuàng)建文件。
    的頭像 發(fā)表于 12-05 17:21 ?2417次閱讀

    何在Linux使用wc命令統(tǒng)計(jì)目錄文件

    盡管不是很經(jīng)常需要知道,但有時(shí)您需要找出指定目錄中有多少個(gè)文件。例如,Linux系統(tǒng)inodes用完,則需要查找哪個(gè)目錄包含成千上萬個(gè)文件
    的頭像 發(fā)表于 12-09 16:48 ?2125次閱讀

    何在Linux使用rpm命令

    RPM是基于RedHat Linux發(fā)行版的軟件包管理器,例如CentOS和Fedora。RPM還指`rpm`命令和`.rpm`文件擴(kuò)展名稱。
    的頭像 發(fā)表于 01-04 17:14 ?2000次閱讀

    何在Linux使用du命令統(tǒng)計(jì)目錄文件大小

    du命令是`disk usage`的縮寫,打印文件目錄使用的磁盤空間量估算。這對(duì)于查找占用大量磁盤空間的文件和目錄非常有用。
    的頭像 發(fā)表于 01-04 17:25 ?7034次閱讀

    何在Linux上使用粘貼命令?

    Linux中的粘貼命令是一個(gè)有用的工具,用于多個(gè)文件文本行合并到單個(gè)文件
    的頭像 發(fā)表于 02-08 16:58 ?2189次閱讀

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

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

    linux中查找文件命令

    Linux中,可以使用以下命令來查找文件: find 命令:可以在指定目錄及其子目錄中查找文件
    的頭像 發(fā)表于 11-08 14:24 ?1819次閱讀

    linux解壓gz文件命令

    Linux系統(tǒng)中,可以使用gzip命令解壓.gz文件。gzip命令用于壓縮和解壓縮文件,使用方法如下: 解壓.gz
    的頭像 發(fā)表于 11-08 14:42 ?6549次閱讀

    linux刪除文件命令rm

    Linux系統(tǒng)中,可以使用rm命令來刪除文件目錄。該命令的功能是刪除一個(gè)目錄中的一個(gè)多個(gè)
    的頭像 發(fā)表于 11-13 16:42 ?1359次閱讀