快速清空Linux中的大文件

快速清空Linux中的大文件

1:通过重定向到null清空文件内容
使用 shell 重定向
null
(不存在的对象)到文件的最简单方法来清空文件内容

[root@virtual_host ~]# > anaconda-ks.cfg 
[root@virtual_host ~]# cat anaconda-ks.cfg 

2:使用true命令重定向清空文件
这里我们将使用一个符号,
:
是一个shell内置命令,本质上等同于
true
命令
另一种方法是将
:
或
true
内置命令的输出重定向到文件

[root@virtual_host ~]# : > access.log 
[root@virtual_host ~]# cat access.log 
[root@virtual_host ~]# 

[root@virtual_host ~]# cat access.log 
am
f,laflaf
fmllmaefmaef
[root@virtual_host ~]# true > access.log 
[root@virtual_host ~]# cat access.log 
[root@virtual_host ~]# 

3. 使用带有 /dev/null 的 cat/cp/dd 应用程序清空文件

在 Linux 中,
null
设备主要用于丢弃进程不需要的输出流,或者作为输入流。这通常是通过重定向机制完成的。

/dev/null
设备文件是一个特殊文件,它会吞噬发送给它的任何输入,或者它的输出与空文件的输出相同。

此外,你可以通过
/dev/null
# 使用cat 命令将输出重定向到文件作为输入来清空文件的内容
[root@virtual_host ~]# cat access.log 
fmmaflmlaf
fmeafmakefm
fmkamfamf
mfeamfmaf
mfkeamfa
mfkefq
flamfm
[root@virtual_host ~]# cat /dev/null > access.log 
[root@virtual_host ~]# cat access.log
# 也可以使用cp 命令将文件内容清空
[root@virtual_host ~]# cp /dev/null access.log 
cp: overwrite ‘access.log’? y
[root@virtual_host ~]# cat access.log

在下面的命令中,
if
指的是输入文件,
of
指的是输出文件。
[root@virtual_host ~]# cat access.log 
f,eafmaemfaemf
fmkekamfaemfa
mfeamfmalfma
fmlaemflamfla
[root@virtual_host ~]# dd if=/dev/null of=access.log 
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000171758 s, 0.0 kB/s
[root@virtual_host ~]# cat access.log 

4. 使用 echo 命令清空文件
在这里,你可以使用带有空字符串的echo 命令并将其重定向到文件

[root@virtual_host ~]# echo "" > access.log
[root@virtual_host ~]# echo > access.log 

空字符串与 null 不同。一个字符串是一个对象,它可能是空的。而null意味着一个不存在的对象。

因此将上面的echo 命令的输出重定向到文件中,并使用cat 命令查看文件内容时,会打印一个空行

要发送一个空输出到文件,使用该标志
-n
告诉
echo
不输出换行符。
[root@virtual_host ~]# echo -n "" > access.log

5. 使用 truncate 命令清空文件
truncate
命令将文件的大小缩小或扩展到定义的大小。

你可以将它与
-s
指定文件大小的选项一起使用。要清空文件内容使用
-s 0

参数:
[root@virtual_host ~]# truncate -s 0 access.log
posted @ 2022-02-06 12:06  Layzer  阅读(36)  评论(0编辑  收藏  举报