如何在Linux使用truncate命令将文件缩小或扩展到指定的大小

在某些情况下,您可能希望将现有文件截断,即减少或者缩小文件的大小。简单来说,截断文件意味着删除文件内容而不删除文件。
截断文件比删除文件后重新创建文件并设置正确的权限和所有权。更快,更容易。
还有一点就是,如果要删除的文件已经被其它进程打开,如果你此时删除文件可能会导致使用该文件的进程没有响应。但你可以尝试将文件截断。
本教程说明如何在linux使用truncate命令将文件缩小或扩展到指定的大小。
truncate 命令截短/清空/填充文件truncate命令的-s选项可让您将文件的大小缩小或扩展到指定的大小。文件大小参数一个整数,该整数是任何数*1024。你也可以整数后面指定可选的单位参数。
单位可以是k,m,g,t,p,e,z,y或者是kb,mb,gb等。此外大小参数还可以指定一个前缀,如下。
+加号表示增加的大小, -减少指定的大小。还可以是大于,增加或者减少指定大小,使用/ 进行四舍五入,%向上取整。
如果文件大于指定的大小,则会删除额外的数据。如果文件较小,则对其进行扩展到指定大小,并且扩展部分的读数为零字节。
truncate -s 0 filename命令将文件的缩小的零的大小。命令truncate -s +1m file1会在原来基础再增加1m大小。
truncate -s 0 filenametruncate -s +1m filenamels -al filenametruncate 命令清空日志文件随着时间的流逝,您的磁盘驱动器可能会堆满很多大型日志文件,这些日志文件会占用大量磁盘空间。
此时,你可以运行命令sudo truncate -s 0 /var/log/**/*.log清空清空/var/log目录以.log结尾的文件。
另一个更好的选择是使用logrotate工具压缩和删除日志文件。
sudo truncate -s 0 /var/log/**/*.logshell 重定向清空文件清空文件最简单,最常用的方法是使用shell重定向操作符>。使用重定向清空文件的命令是: > filename。
:返回零字节的空字符串,也可以理解为不产生任何输出。重定向操作符>将命令:的输出重定向到指定文件。
filename是您要清空的文件。如果文件存在,它将被清空为零的大小,即空文件,否则创建零字节的文件。
现在大多数shell程序,例如bash或zsh,都可以在重定向符号之前省略命令,因此你可以将: > filename写成> filename。
: > filename> filename除了:命令,你还可以使用另一个不产生任何输出的命令cat /dev/null,/dev/null是空设备文件。
然后使用重定向操作符> 重定向到你要清空的文件,例如命令cat /dev/null > filename会清空文件filename。
此外还可以使用echo命令和-n选项。-n选项表示不输出尾随的换行符。例如命令echo -n > filename
cat /dev/null > filenameecho -n > filenamesudo与shell 重定向清空文件要能够清空文件,您需要对文件具有写权限。通常您可能会因为权限问题而使用 sudo命令。
但是使用sudo提升权限不适用于重定向操作符>,例如命令sudo : > /var/log/syslog。
你的终端将会打印错误消息bash: /var/log/syslog: permission denied。
sudo : > /var/log/syslogbash: /var/log/syslog: permission denied遇到此问题时可以有几种解决方案。第一种是使用sudo和sh命令启动子shell运行命令。
另一种解决方案是将命令的标准输出通过管道传递给tee命令,然后使用sudo将提升权限运行tee命令晴空文件。例如命令: | sudo tee filename。
sh命令的-c选项允许用户指定要运行的命令,命令将会shell的子进程运行。命令sudo sh -c '> filename'创建shell子进程运行> filename命令。
sudo sh -c '> filename': | sudo tee filename结论要在linux中截断文件,请使用重定向操作符>,后跟文件名或者使用truncate命令。

碳化硅SiC功率器件,全球市场总体规模,前三十大厂商排名及市场份额
应用面向对象编程SoC原则的典型示例
关于中国义乌国际装备博览会的介绍和分析
智算中心加速落地,计算力就是生产力
三星电视开启双12大促,携手天猫商城开启年度钜惠
如何在Linux使用truncate命令将文件缩小或扩展到指定的大小
机载AESA雷达的发展概述
毫米波电路中的传输线技术性能优化详细解析
魅蓝Note6发布会直击,STAYTRUE这才是最值千元机
高效的便携式医疗设备设计策略
基于SPAD的高性能3D ToF深度传感器输出亚毫米级精度的点云
电容电阻屏办不到的事电磁屏解决
小米Mix2、小米Note3、红米Pro2最新消息:小米新机 小米Mix2、小米Note3、红米Pro2配置、设计、价格消息汇总
Ansys Fluent软件:一款通用计算流体动力学(CFD)软件
2nm制程报价直逼2.5万美元
CFP-SMx封装的高效替代品
苹果已注册9款未发布的iPhone型号和1个Mac型号
动力传动系统中的传感器 前景光明应用极其广泛
358接k型热电偶电路怎么接
步入式大型恒温恒湿试验室