Linux系统:清除文件内容与两个特殊文件

目录

一、理论

1.清除文件内容

2. /dev/null与 /dev/zero


一、理论

1.清除文件内容

(1)使用echo命令

echo > filename

(2)使用truncate命令

该命令会将文件内容清空,并将文件大小设置为0。

truncate -s 0 filename

(3)使用cat命令

该命令会将文件内容清空,但是文件大小不变。

cat /dev/null > filename

2. /dev/null与 /dev/zero

(1)/dev/null

Linux系统中,/dev/null被称为空设备,是一个特殊的设备文件。写入/dev/null,会丢弃一切写入其中的数据(但报告写入操作成功);读取/dev/null,则会立即得到一个EOF。

/dev/null被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用作输入流的空文件。当你读取它时,空设备会提供无限的空字符(NULL、ASCII NUL、0x00)。

 禁止标准输出

cat test.sh > /dev/null 

或者,1是默认重定向,就是标准输出。

cat test.sh 1> /dev/null 

② 禁止标准错误输出

在使用cat $filename时,如果filename对应的文件不存在,系统肯定会报错: “ cat: filename: 没有那个文件或目录 ” 。假如有错误输出,会通过> /dev/null输出到黑洞,就不会看到错误输出。

cat test.sh 2> /dev/null 

③ 删除文件,通过使用/dev/null软链接

ln -s /dev/null /test.sh

(2)/dev/zero

与/dev/null一样,/dev/zero也是一个伪文件,但它实际上产生连续不断的null流(二进制的零流,而不是ASCII型的),写入它的输出会丢失不见。/dev/zero的主要用处是用来创建一个指定长度的用于初始化的空文件,像临时交换文件。

例如使用dd制作U盘启动系统,U盘有16G。制作好启动盘以后,系统只占了2.5G,而其他的空间(将近12G)都无法使用。可以使用如下指令给整个U盘清零。

dd if=/dev/zero of=/dev/sdb count=1 bs=4M

你可能感兴趣的:(linux,运维,服务器)