linuxIO重定向find查⽂件压缩打包
今⽇所学~
IO重定向
将不需要看到的信息输出向其他位置,当访问⼀个⽂件时,内核通过⽂件描述符去访问⽂件,和⽂件建⽴链接,然后输出。
其中0代表了输⼊端,1代表了正确输出,2代表错误输出,随后的3、4、5、6等等等等代表链接的⽂件个数,理论上为⽆限,默认为1024,但可进⾏调整。
1> 覆盖
在命令中使⽤,可将输出的正确输出输出⾄指定⽂件,不输出⾄屏幕,如我们更改密码时,会提醒令牌已更新,使⽤重定向可将信息输出⾄指定⽂件(若指向⽂件的话,会覆盖原内容)或/dev/null,1可不写,使⽤中默认为正确结果输出
[root@confusedowlet ~]# echo '1' | passwd --stdin zhen 1> /dev/null
[root@confusedowlet ~]#
1>> 追加
会追加⾄指定⽂件的末尾
[root@confusedowlet ~]# echo '1' | passwd --stdin zhen 1>> ./password
[root@confusedowlet ~]# echo '1' | passwd --stdin zhen 1>> ./password
[root@confusedowlet ~]# cat ./password
更改⽤户 zhen 的密码。
passwd:所有的⾝份验证令牌已经成功更新。
更改⽤户 zhen 的密码。
passwd:所有的⾝份验证令牌已经成功更新。
2> 错误信息输出覆盖
[root@confusedowlet ~]# laa
-
bash: laa: 未到命令
[root@confusedowlet ~]# laa 2> ./err
[root@confusedowlet ~]# laa 2> ./err
[root@confusedowlet ~]# cat ./err
-bash: laa: 未到命令
2>> 错误信息输出追加
[root@confusedowlet ~]# laa 2>> ./err
[root@confusedowlet ~]# laa 2>> ./err
[root@confusedowlet ~]# cat ./err
-bash: laa: 未到命令
-bash: laa: 未到命令
-
bash: laa: 未到命令
&> 混合输出⾄指定⽂件或null
#etc下部分⽂件为⽆权限访问的
[wang@confusedowlet ~]$ find /etc &>
[wang@confusedowlet ~]$
分别输出:
[root@confusedowlet ~]# ls /root /error
ls: ⽆法访问/error: 没有那个⽂件或⽬录
/root:
<  aaa  anaconda-ks.cfg  err      passwd  password
[root@confusedowlet ~]# ls /root /error >ab 2>/dev/null
[root@confusedowlet ~]#
< 输⼊重定向更改输⼊源以⽂件内容为输⼊源
[root@confusedowlet ~]# cat < /root/test
aa
aa
| 管道符
将上级的命令输出结果传递给下⼀级做使⽤。
[root@confusedowlet ~]# ls /var/ | wc -l
22
xargs 参数传递
让⼀些⽆法使⽤的命令,可以在管道中使⽤。
[root@confusedowlet ~]# ls /root/ | xargs rm -rf
[root@confusedowlet ~]# ll /root
总⽤量0
tee
可在管道中使⽤,将读取⽤于保存并输出⾄下⼀级使⽤
[root@confusedowlet ~]# echo '1' | tee -a passwd |passwd --stdin zhen 更改⽤户 zhen 的密码。
passwd:所有的⾝份验证令牌已经成功更新。
[root@confusedowlet ~]# cat passwd
1
⽂件查
find 查⽂件
根据条件去查那些需要却不确定位置的⽂件
-perm 根据权限查[/|-]
#绝对为644的
find /root -perm 644
#包含644的即等于或⼤于644的
find /root -perm -644
#ugo任意⼀个符合条件的
find /root -perm /644
-type 根据⽂件类型查
find查命令的使用#查/⽬录下,类型是⽂件的⽂件
find / -type f
-
name 根据名名称查
#名称是root的
find / -name 'root'
-iname 忽略名称⼤⼩写
find / -iname 'root'
-mtime 根据时间查为天
#查时间为之前第七天的⽂件⽬录
find / -mtime  7
#查七天前有变化的⽂件⽬录
find / -mtime +7
#查七天内有变化的⽂件⽬录
find / -mtime -7
-mmin 根据分钟查
⽤法与mtime相同
-size 根据⼤⼩查
#查⼤于5M的数据
find / -size +5M
#查⼩于5M的数据
find / -size -5M
#查等于5M的数据
find / -size  5M
-user 根据⽤户查
#根据属主查⽂件
find / -user username
-group 根据组查
#根据组名字查⽂件
find / -group groupname
-a 与
#查⼤于5M 并且⼩于10M的⽂件
find / -size +5M -a -size -10M
-o 或
#查属主是root,或者⽂件名带f的
find /tmp -user root -o -name 'f'
-
not(!) ⾮ 取反
#查属主不是root的⽂件
find / ! -user root
压缩打包
将⽂件打包,⽤于⽅便上传下载,且能压缩⽂件⼤⼩,且部分(linux不⽀持RAR压缩格式)压缩格式和windows、MAC可共⽤gzip
只能压缩⽂件,不能压缩⽬录 且打包后会删除源⽂件(让某个配置不⽣效,且不想删除时,可以压缩该配置⽂件)
#gzip filename  压缩
#  查看gzip压缩后的⽂件
#gzip - 解压gzip压缩包
zip
⽂件⽬录都可以压缩
zip filename.zip filename  先创建压缩包,后指定要压缩的⽂件
zip -r dev.zip dir/    -r 递归压缩
unzip filname.zip  解压缩
unzip filname.zip -d /tmp 解压缩⽂件⾄指定位置
unzip -l filename.zip  查看压缩包内容
tar
最常⽤压缩与解压缩,⽀持⽂件和⽬录的压缩归档
常⽤组合命令:
czf : 打包⽂件为格式
tar czf ./filename
cjf :打包⽂件为tar.bz格式
cJf :打包⽂件为格式
zxf :解压格式⽂件
jxf :解压tar.bz格式⽂件
xf :智能解压⽂件
tar xf
tf :查看压缩包内容
tar tf filename.tar.bz2
-C :指定解压⾄指定路径
tar xf filename.tar.bz2 -C /root/
-exclude : 排除单个或多个⽂件后压缩
tar czf --exclude=/var/local/number /var/local/
-X :通过指定⽂件内容进⾏排除后压缩(将不打算打包的⽂件写⼊⼀个⽂件内,随后写⼊命令内进⾏排除) tar czfX ./

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。