Linux输出和输入重定向&&Linux常见清空与删除文件命令

            输入重定向:重新指定设备替代键盘作为新的输入设备

            输出重定向:重新指定设备替代荧幕作为新的输出设备

Linux输入重定向

对于输入重定向来说,其需要用到的符号以及作用如表 1 所示。

命令符号格式

作用

命令 < 文件

将指定文件作为命令的输入设备

命令 << 分界符

表示从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符),这里的分界符其实就是自定义的字符串

命令 < 文件 1 > 文件 2

将文件 1 作为命令的输入设备,该命令的执行结果输出到文件 2 中。

表 1 输入重定向中用到的符号及作用

【例 1】

默认情况下,cat 命令会接受标准输入设备(键盘)的输入,并显示到控制台,但如果用文件代替键盘作为输入设备,那么该命令会以指定的文件作为输入设备,并将文件中的内容读取并显示到控制台。

以 /etc/passwd 文件(存储了系统中所有用户的基本信息)为例,执行如下命令:

[root@localhost ~]# cat /etc/passwd

#这里省略输出信息,读者可自行查看

[root@localhost ~]# cat < /etc/passwd

#输出结果同上面命令相同

注意,虽然执行结果相同,但第一行代表是以键盘作为输入设备,而第二行代码是以 /etc/passwd 文件作为输入设备。

【例 2】

[root@localhost ~]# cat << 0

>c.biancheng.net

>Linux

>0

c.biancheng.net

Linux

可以看到,当指定了 0 作为分界符之后,只要不输入 0,就可以一直输入数据。

【例 3】

首先,新建文本文件 a.tx,然后执行如下命令:

[root@localhost ~]# cat a.txt

[root@localhost ~]# cat < /etc/passwd > a.txt

[root@localhost ~]# cat a.txt

#输出了和 /etc/passwd 文件内容相同的数据

可以看到,通过重定向 /etc/passwd 作为输入设备,并输出重定向到 a.txt,最终实现了将 /etc/passwd 文件中内容复制到 a.txt 中。

 

 

Linux输出重定向

相较于输入重定向,我们使用输出重定向的频率更高。并且,和输入重定向不同的是,输出重定向还可以细分为标准输出重定向和错误输出重定向两种技术。

例如,使用 ls 命令分别查看两个文件的属性信息,但其中一个文件是不存在的,如下所示:

[root@localhost ~]# touch demo1.txt

[root@localhost ~]# ls -l demo1.txt

-rw-rw-r--. 1 root root 0 Oct 12 15:02 demo1.txt

[root@localhost ~]# ls -l demo2.txt    <-- 不存在的文件

ls: cannot access demo2.txt: No such file or directory

上述命令中,demo1.txt 是存在的,因此正确输出了该文件的一些属性信息,这也是该命令执行的标准输出信息;而 demo2.txt 是不存在的,因此执行 ls 命令之后显示的报错信息,是该命令的错误输出信息。

再次强调,要想把原本输出到屏幕上的数据转而写入到文件中,这两种输出信息就要区别对待。

在此基础上,标准输出重定向和错误输出重定向又分别包含清空写入和追加写入两种模式。因此,对于输出重定向来说,其需要用到的符号以及作用如表 2 所示。

命令符号格式

作用

命令 > 文件

将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,会清空原有数据,再写入新数据。

命令 2> 文件

将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,会清空原有数据,再写入新数据。

命令 >> 文件

将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,新数据将写入到原有内容的后面。

命令 2>> 文件

将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,新数据将写入到原有内容的后面。

命令 >> 文件 2>&1

或者

命令 &>> 文件

将标准输出或者错误输出写入到指定文件,如果该文件中已包含数据,新数据将写入到原有内容的后面。注意,第一种格式中,最后的 2>&1 是一体的,可以认为是固定写法。

表 2 输出重定向用到的符号及作用

【例 4】新建一个包含有 "Linux" 字符串的文本文件 Linux.txt,以及空文本文件 demo.txt,然后执行如下命令:

[root@localhost ~]# cat Linux.txt > demo.txt

[root@localhost ~]# cat demo.txt

Linux

[root@localhost ~]# cat Linux.txt > demo.txt

[root@localhost ~]# cat demo.txt

Linux     <--这里的 Linux 是清空原有的 Linux 之后,写入的新的 Linux

[root@localhost ~]# cat Linux.txt >> demo.txt

[root@localhost ~]# cat demo.txt

Linux

Linux     <--以追加的方式,新数据写入到原有数据之后

[root@localhost ~]# cat b.txt > demo.txt

cat: b.txt: No such file or directory  <-- 错误输出信息依然输出到了显示器中

[root@localhost ~]# cat b.txt 2> demo.txt

[root@localhost ~]# cat demo.txt

cat: b.txt: No such file or directory  <--清空文件,再将错误输出信息写入到该文件中

[root@localhost ~]# cat b.txt 2>> demo.txt

[root@localhost ~]# cat demo.txt

cat: b.txt: No such file or directory

cat: b.txt: No such file or directory  <--追加写入错误输出信息

来自 <Linux重定向(输入输出重定向)详解>

Linux清空文件命令

  1. 清空文件可以两种,以清空demo.txt为例

  1

  2

 >demo.txt      

cat /dev/null > demo.txt

Linux删除文件或文件夹命令

  1. 删除文件可以用 

单个删除:rm -f + 文件名

eg:rm -f  2018_12_26.stderrout.log.060121612 --执行完成即将这个文件删除

批量删除:rm -f + *文件关键字*

eg:rm -f  rm *stderrout.log*  --执行完成后即将所有的名称包括stderrout.log的文件都删除

  1. 删除文件夹

rm -rf + 文件名  (加上-f表示强制删除,不提示确认删除,也可以直接用 rm -r )

来自 <Linux删除文件命令_liumce的博客-CSDN博客_linux 删除文件>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0宝er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值