在UNIX/Linux中截断大文本文件

时间:2020-01-09 10:43:53  来源:igfitidea点击:

如何在UNIX/Linux操作系统下截断或者缩小大文本文件?
有多种工具和方法可以截断UNIX/Linux操作系统下的大文本文件,如下所示。

选项#1:Shell输出重定向

您可以截断文本文件,并使用重定向将大小设置为零:

> {filename}
ls -l largefile.txt
> largefile.txt
ls -l largefile.txt

请注意,如果不存在largefile.txt文件,则会创建该文件。
并且largefile.txt文件将被覆盖(如果存在)。

选项#2:截断命令truncate

使用truncate命令将每个FILE的大小缩小或者扩展到指定的大小:

truncate -s 0 {filename.txt}
ls -lh filename.txt
truncate -s 0 filename.txt
ls -lh filename.txt

-s选项用于将SIZE设置为零。
有关更多详细信息,请参见truncate命令手册页:

man truncate

选项#3:logrotate实用程序

logrotate命令旨在简化对生成大量日志文件的系统的管理。
它允许自动旋转,压缩,删除和邮寄日志文件。
每个日志文件都可以每天,每周,每月或者当它变得太大时进行处理。
了解如何使用logrotate命令旋转,压缩和邮寄存储在/var/log和UNIX/Linux oses下其他位置的系统日志。

选项4:/dev/null

空设备/dev/null充当了一个黑洞,它丢弃了像Unix这样的在Unix操作系统下写入其中的所有数据。
您可以按以下方式使用它(Philippe Petrinko的技巧提示):

cp /dev/null largefile.txt

或者

cat /dev/null > largefile.txt