在某些情况下,您可能希望将现有文件截断(空)为零长度。简单来说,截断文件意味着删除文件内容而不删除文件。

截断文件比删除文件,重新创建并设置正确的权限和所有权更快,更容易。另外,如果文件是由进程打开的,则删除文件可能会导致使用该文件的程序出现故障。

本教程说明了如何在Linux系统中使用shell重定向和truncate命令将文件截断为零大小。

Shell重定向

截断文件最简单,最常用的方法是使用> Shell重定向操作符。

使用重定向截断文件的一般格式为:: > filename

让我们分解一下命令::冒号表示true,不产生输出。

重定向操作符>将先前命令的输出重定向到给定文件。

filename,您要截断的文件。

如果文件存在,它将被截断为零。否则,将创建文件。

除了:以外,还可以使用另一个不产生任何输出的命令。

以下是使用cat命令输出/dev/null设备内容的示例,该设备仅返回文件结尾字符:cat /dev/null > filename

另一个可以使用的命令是echo。 -n选项告诉echo不要添加换行符:echo -n > filename

在大多数现代的Shell(例如Bash或Zsh)上,您可以在重定向符号之前省略命令,并使用:> filename

要能够截断文件,您需要对该文件具有写权限。通常,您将为此使用sudo,但是提升的root特权不适用于重定向。这是一个例子:sudo : > /var/log/syslogbash: /var/log/syslog: Permission denied

有几种解决方案,可以使用sudo进行重定向。第一个选项可以使用sudo运行新的shell,并使用-c标志在该shell中执行命令:sudo sh -c '> filename'

另一个选择是将输出传递给tee命令,将tee特权提升为sudo,然后将空输出写入给定文件:: | sudo tee filename

truncate命令

truncate是一个命令行实用程序,可让您将文件的大小缩小或扩展到给定的大小。

使用truncate命令将文件截断为零大小的一般语法如下:truncate -s 0 filename

-s 0选项将文件大小设置为零。

例如,要清空Nginx访问日志,您可以使用:sudo truncate -s 0 /var/log/nginx/access.log

清空所有日志文件

随着时间的流逝,您的磁盘驱动器可能会堆满很多大型日志文件,这些日志文件会占用大量磁盘空间。

以下命令将清空/var/log目录下以“ .log”结尾的文件:sudo truncate -s 0 /var/log/**/*.log

一个更好的选择是使用logrotate工具压缩和删除日志文件。

结论

要在Linux中截断文件,请使用重定向操作符>,后跟文件名。

如果您有任何疑问或意见,请在下面发表评论。

linux truncate 命令,如何在Linux中截断truncate文件相关推荐

  1. linux 重新运行命令,如何在Linux中重新运行最后执行的命令?

    在命令行中重新运行命令是一项常规任务,当我们在Unix系统上工作时,我们所有人都要经历.在下面的文章中,我们将看到各种方法来重新运行已经执行的命令,这有助于节省时间,并且有助于轻松地推理较长的命令而无 ...

  2. linux系统export,Linux入门进阶 - 如何在Linux中使用export命令

    原标题:Linux入门进阶 - 如何在Linux中使用export命令 来自: Linux迷 链接:https://www.linuxmi.com/linux-export.html Linux ex ...

  3. linux中哪个命令可以压缩部分文件,可以使用Linux解压缩命令,解压缩任意格式的压缩文件。...

    可以使用Linux解压缩命令,解压缩任意格式的压缩文件. 答:错 铁碳合金相图上的共晶线是 答:ECF 中国大学MOOC: 冲击电流计主要用来测量 答:短时间放电脉冲所迁移的电量 脊髓全长有两处膨大, ...

  4. linux cp命令 前面,盘点Linux命令之Linux cp命令使用大全

    Linux命令有很多,其中Linux cp命令常用的一种,Linux cp命令如何使用,下面IT培训网将为您盘点有关Linux命令之Linux cp命令大全. Linux命令之Linux cp命令详解 ...

  5. linux每日命令(26):Linux文件属性详解

    Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [root@loca ...

  6. linux用户命令快捷链接,linux简单命令

    linux系统命令是最基础也是最重要的部分,下面由学习啦小编为大家整理了linux简单命令的相关知识,希望对大家有帮助! linux简单命令一.文件和目录 家目录为 /home/user 或者 - 目 ...

  7. linux读取手机文件,linux at命令和batch从输入或指定文件读取命令

    linux at命令和batch从输入或指定文件读取命令 2009-12-31 11:43:57   出处:https://www.yqdown.com linux at命令和 batch 从准则 输 ...

  8. linux cd 命令详解,linux cd 命令详解

    下面为大家讲解Linux最常用的基本命令linux cd命令. 说linux cd命令是linux最常用的命令一点也不为过,我们几乎时时刻刻都需要使用这个命令. 在DOS下也有cd这个命令,他与lin ...

  9. vim autoformat php,vim - 如何在VI中整理HTML文件的缩进?

    vim - 如何在VI中整理HTML文件的缩进? 我如何修复他的巨大的html文件的缩进,这些文件都搞砸了? 我尝试了通常的"gg = G"命令,这是我用来修复代码文件缩进的命令. ...

最新文章

  1. [原] XAF How to Edit multiple objects in a ListViewAndDetailView
  2. Thrift在windows下的使用
  3. CL_THTMLB_COLOR_UTIL
  4. 1. 在虚拟机中 添加内容
  5. leetcode讲解--693. Binary Number with Alternating Bits
  6. dataframe里面数据截取的规律
  7. java的k-means算法_k-means聚类算法的java实现描述!
  8. Linux下使用curl查看http请求各阶段耗时
  9. 【博客项目】—登录验证功能实现( 五)
  10. 微软将于下周展示平板电脑操作系统
  11. 速达服务器启动时显示对象名ACCSET无效
  12. 怎么做电商详情页html,电商商品详情页怎么做?电商详情页模板一键生成的方法...
  13. 将CSDN文章下载为markdown文档
  14. pytest框架笔记(十三) : Pytest+Allure定制报告
  15. 一、java入门(高琪java300集+java从入门到精通笔记)
  16. 天天对着代码没事也谢谢博客
  17. Xilinx Zynq-7000嵌入式系统设计与实现-电子书下载-pdf
  18. map-box地图点击图标高亮事件
  19. 本地Windows系统远程连接滴滴云Linux云服务器
  20. php这个符号怎么打,怎么打出圈2符号

热门文章

  1. Git内部原理之深入解析引用规范
  2. IDEA连接阿里云ECS运行的docker,及处理挖矿病毒kdevtmpfsi的经历
  3. Win10启动分区不存在如何修复?
  4. Microsoft Visual Studio 2010 Ultimate 正式版注册码
  5. 计算机专业考研双非大学排名,【大学分析】去年计算机爆炸的双非浙江工业大学,今年分数大幅下降!...
  6. sql 主键表与外键表的区分
  7. Grafana 未经授权任意访问漏洞(CVE-2022-32275)
  8. 自动完成 B 站每日任务竟然如此简单
  9. cocos2D-x在windows下实现隐藏默认标题栏,并实现拖动
  10. 什么是视频号?为什么视频号暂停申请?