【Linux之truncate 命令用法】

truncate相关命令

用法:truncate 选项... 文件...

将文件缩减或扩展至指定大小。

如果指定文件不存在则创建。

如果指定文件超出指定大小则超出的数据将丢失。

如果指定文件小于指定大小则用0 补足。

长选项必须使用的参数对于短选项时也是必需使用的。

  -c, --no-create 不创建文件

  -o, --io-blocks 将SIZE 视为IO 块数而不使用字节数

  -r, --reference=文件   使用此文件的大小

  -s, --size=大小 使用此大小

      --help 显示此帮助信息并退出

      --version 显示版本信息并退出

SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:

KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。

指定大小也可使用以下前缀修饰:

"+" 增加,"-" 减少,"<" 至多,">" 至少,

"/" 小于等于原尺寸数字的指定数字的最小倍数,"%" 大于等于原尺寸数字的指定数字的最大倍数。

译者注:当输入值为m,参考值为n 时,

"/" 运算的数学计算式为 m / n * n;

"%" 运算的数学计算式为( m + n - 1 ) / n * n

请注意-r 和-s 是互斥的选项。

Linux文件清空方法总结

1、使用重定向的方法

[root@centos7 ~]# du -h test.txt 

4.0K test.txt

[root@centos7 ~]# > test.txt 

[root@centos7 ~]# du -h test.txt 

0 test.txt

2、使用true命令重定向清空文件

[root@centos7 ~]# du -h test.txt 

4.0K test.txt

[root@centos7 ~]# true > test.txt 

[root@centos7 ~]# du -h test.txt 

0 test.txt

3、使用cat/cp/dd命令及/dev/null设备来清空文件

[root@centos7 ~]# du -h test.txt 

4.0K test.txt

[root@centos7 ~]# cat /dev/null > test.txt 

[root@centos7 ~]# du -h test.txt 

 test.txt

###################################################

[root@centos7 ~]# echo "Hello World" > test.txt 

[root@centos7 ~]# du -h test.txt 

4.0K test.txt

[root@centos7 ~]# cp /dev/null test.txt 

cp:是否覆盖"test.txt"? y

[root@centos7 ~]# du -h test.txt 

 test.txt

##################################################

[root@centos7 ~]# echo "Hello World" > test.txt 

[root@centos7 ~]# du -h test.txt 

4.0K test.txt

[root@centos7 ~]# dd if=/dev/null of=test.txt 

记录了0+0 的读入

记录了0+0 的写出

0字节(0 B)已复制,0.000266781 秒,0.0 kB/秒

[root@centos7 ~]# du -h test.txt 

 test.txt

4、使用echo命令清空文件

[root@centos7 ~]# echo "Hello World" > test.txt 

[root@centos7 ~]# du -h test.txt 

4.0K test.txt

[root@centos7 ~]# echo -n "" > test.txt ==>要加上"-n"参数,默认情况下会"\n",也就是回车符

[root@centos7 ~]# du -h test.txt 

0 test.txt

5、使用truncate命令清空文件

[root@centos7 ~]# du -h test.txt 

4.0K test.txt

[root@centos7 ~]# truncate -s 0 test.txt -s参数用来设定文件的大小,清空文件,就设定为0;

[root@centos7 ~]# du -h test.txt 

0 test.txt