linux下dev中无null文件,Linux——/dev/null详解

本文详细介绍了Linux中的/dev/null设备文件,它用于丢弃写入的数据且无法读取。通过示例展示了如何使用>/dev/null清除文件内容,以及2>/dev/null或2>&1重定向标准错误输出到/dev/null,从而避免错误信息显示。此外,解释了标准输出和标准错误输出的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、  /dev/null

/dev/null属于字符特殊文件,它属于空设备,是一个特殊的设备文件,它会丢弃一切写入其中的数据,写入它的内容都会永远丢失,而且没有任何可以读取的内容;就像是黑洞一样。

我们用file命令查看下,说明类型是字符特殊文件。

[root@localhost ~]# file /dev/null

/dev/null: character special

所以我们一般会把/dev/null当成一个垃圾站,不要的东西丢进去。比如来清除文件中的内容。

示例:

[root@localhost oa]# ls >> a.txt

[root@localhost oa]# cat a.txt

a.txt

passwd

time.sh

[root@localhost oa]# cat /dev/null > a.txt #把空重定向写到a.txt,以前的内容被覆盖了;

[root@localhost oa]# cat a.txt

也可以把一个文件内容读到/dev/null里面。不过当文件不存在的时候回报错。我们可以在前面加上数字2。

[root@localhost oa]# cat test.txt >/dev/null

cat: test.txt: 没有那个文件或目录

[root@localhost oa]# cat test.txt 2>/dev/null #把文件内容重定向写到空,以前内容被丢弃了;

一般标准输出和标准错误输出都是屏幕,因此错误信息还是会在屏幕上输出。 这个数字代表的是标准输出。

0:表示标准输入流(stdin),

1:表示标准输出(stdout)。

2:表示标准错误输出(stderr)

上面就是将标准错误( 2 )输出重定向到/dev/null,所以屏幕上不会再显示错误提示了。

二、  >/dev/null 2> &1

用这样的写法: >/dev/null 2> &1

这条命令的意思是将标准输出和标准错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃.

下面就为大家来说一下, command > filename   2>filename  与command > filename  2>&1 有什么不同的地方.

首先 command > file 2>file 的意思是将命令所产生的标准输出信息,和标准错误的输出信息送到file中,command  > file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.

而command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容

> 代表重定向到哪里,例如:echo "123" > /home/123.txt

/dev/null 代表空设备文件

2> 表示stderr标准错误输出

& 表示 等同于的意思,标准错误输出  重定向到   标准输出

1 表示stdout标准输出,系统默认值是1,所以   >/dev/null 2>&1也可以写成“1> /dev/null 2> &1”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值