输入输出重定向

时间:2022-01-23 03:34:25

1.touch filename:建立新文件,如果相同文件名的文件已存在会更新文件的时间戳

2.用cat命令编辑文件

①用ctrl+c或ctrl+d结束编辑

[root@localhost tmp]# cat > oldboy
I am learning linux
^C

②用文件标识符(如EOF,也可以是别的)结束编辑

[root@localhost tmp]# cat >>oldboy<<EOF
> hello
> my
> name
> is
> slimshady
> EOF

总结:

>或者1>:标准输出重定向

>>或者1>>:标准追加重定向

2>错误信息输出重定向,用法:如果命令出错则将错误信息作为输入重定向到文件中,如果命令没有出错则输入为空

2>>错误信息追加重定向

[root@localhost tmp]# cat 1.txt 2>oldboy
[root@localhost tmp]# cat oldboy
cat: 1.txt: 没有那个文件或目录
[root@localhost tmp]# cat oldboy 2>oldboy
[root@localhost tmp]# cat oldboy
[root@localhost tmp]# 

<或者0<:标准输入重定向

<<或者0<<:标准追加重定向

[root@localhost tmp]# cat </etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.188.2

将正确的输出和错误信息重定向到同一个文件:

[root@localhost tmp]# cho oldboy >oldboy 2>oldboy
[root@localhost tmp]# cat oldboy
-bash: cho: 未找到命令

[root@localhost tmp]# cho oldboy >oldboy 2>&1
[root@localhost tmp]# cat oldboy
-bash: cho: 未找到命令

[root@localhost tmp]# cho oldboy &> oldboy
[root@localhost tmp]# cat oldboy
-bash: cho: 未找到命令

3.xargs 捕获一条命令的输出然后传递给另一条命令

[root@localhost tmp]# xargs -n 2
1 2 3 4
1 2
3 4

[root@localhost tmp]# xargs -n2<oldboy
hello world
I hello
world I
am slim
shady

4.cp命令 -p选项:复制文件并且附带文件属性

-r 递归复制,用于复制文件夹

-a 等于pdr

5.find 文件所在目录 -type f/d/l/b -name filename -mtime(修改时间) +n\-n\n -exec 命令

在指定目录下查找指定类型指定名称的文件并执行相应命令

-exec  参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。

{}   花括号代表前面find查找出来的文件名。

6.tr 替换命令

[root@localhost ~]# cat oldboy
1 2 3 4

[root@localhost ~]# tr ' ' '\n'<oldboy
1
2
3
4