基础—管道技术和find命令详解

命令中的管道技术 |

左右两个命令之间
将左侧命令的输出结果通过管道交给右侧的命令进行处理
标准输出 | 标准输入
案例:根据uid的大小进行排序

管道技术中的tee技术

tee 重定向,将内容重定向到文件中并输出到屏幕上方
-a 追加重定向
例:[root@web01 opt]# echo $RANDOM | md5sum |cut -c 1-10| tee -a pass.txt
fd3805900c

tee与重定向的区别
重定向直接将数据内容输出到指定的文件中,但是不会显示屏幕上面
tee 将数据内容输出到指定的文件中,并且输出到屏幕上面

xargs 让一些不支持管道的命令支持管道使用

-n 分组
-I 将前面的命令得出的文件名进行一个个传递给{},后面的调用这个{},就相当于调用这些文件
将管道前面的命令的执行结果(文件名)通过管道交给后面的命令,后面的命令会认为他是一组数据,而xargs这个命令可以让后面的命令知道这是一组文件名,后面的命令需要针对这些文件操作
例:
将当前目录下的所有文件进行删除
[root@web01 ~]# ls | xargs rm -f
将当前目录下的所有文件中的oldboy替换为oldgirl
root@web01 ~]# ls |xargs sed ‘s#oldboy#oldgirl#g’
将当前目录下的所有文件复制到/opt目录下
[root@web01 ~]# ls |xargs cp -t /opt
[root@web01 ~]# ls | xargs -I {} cp {} /mnt

查找文件

find 路径 选项 表达式 动作
查找 地区 妹子 18-25岁 约吗

根据名称查找
-name
-iname 忽略大小写
例:
模糊匹配,查找以oldboy开头的,任意结尾 * 所有
[root@web01 ~]# find / -name ‘oldboy*’ -print
匹配所有 ? 只匹配一个字符,必须是一个字符
[root@web01 ~]# find / -name ‘oldboy?.txt’ -print

根据文件大小查
b
k 小写
M
例:
查找文件大小大于100k 的文件
[root@web01 ~]# find /var/log -size +100k -print
查找文件大小小于100k 的文件
[root@web01 ~]# find /var/log -type f -size -100k -print |xargs ls -lh
找出文件大小大于100k并且小于200k的文件 -a 并且
[root@web01 ~]# find /var/log -size +100k -size -200k | xargs ls -lh
找出小于1k或者大于1M的文件 -o 或者
[root@web01 ~]# find /var/log -type f -size -1k -o -size +1M | xargs ls -lh

根据文件的类型
-type

f		普通文件
d 		目录
l 		软链接
b 		块设备
c 		字符设备
s 		socket文件套接字
p 		管道文件

根据文件的修改时间
-mtime 根据最后的修改时间
例:
查找7天以前的文件
[root@web01 ~]# find ./ -mtime +7
查找7天以内的文件
[root@web01 ~]# find ./ -mtime -7
显示第七天的文件
[root@web01 ~]# find ./ -mtime 7
根据时间范围查找
[root@web01 ~]# find /root -mtime +7 -mtime -10
/root/file-04.txt

根据用户或者用户组查找
-user 用户
-group 用户组
-nouser 没有用户
-nogroup 没有用户组

例:
找出用户为postfix的文件
[root@web01 ~]# find / -user postfix -ls
找出没有用户的文件
[root@web01 ~]# find / -nouser -ls
找出文件属组为wheel的文件
[root@web01 ~]# find / -group wheel -ls
找出没有属组的文件
[root@web01 ~]# find / -nogroup -ls
找出没有属主并且没有属组的文件
[root@web01 ~]# find / -nouser -nogroup -ls
找出没有属主或者没有属组 \ ( \ )条件表达式看做是一个整体
[root@web01 ~]# find / \ ( -nouser -o -nogroup \ ) -ls
找出属主和属组同为postfix的文件
[root@web01 ~]# find / -user postfix -a -group postfix -ls
找出属主是mail 或者属组是mail的文件
[root@web01 ~]# find / \ ( -user mail -o -group mail \ ) -ls
找出属主是lisi,属组是mail的文件
[root@web01 ~]# find / -user lisi -group mail -ls

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值