Linux命令篇 find

1.按文件名查找
find ./ -name "文件名称"  # 默认区分大小写,忽略大小写使用-iname

2.按文件大小查找:不支持小数如1.3M,单位可以使用G
find ./ -size +10M  # 查找大于10M的文件
find ./ -size -10M  # 查找小于10M的文件
find ./ -size 10M   # 查找等于10M的文件
find ./ -size +10M -size -20M    # 查找大于10M且小于20M的文件
find ./ -size +10M -o -size -5M  # 查找大于10M或小于5M的文件

3.按文件修改时间查找:在企业中一般用于删除N天前的日志,atime为访问时间,ctime为属性改变时间
find ./ -mtime +30  # 查找修改时间为30天前的
find ./ -mtime -7   # 查找修改时间为7天内的
find ./ -mtime 1    # 查找修改时间为24小时前且48小时内的
find ./ -mtime 0    # 查找修改时间为24小时内的

4.按文件类型查找
find ./ -type f    # 查找普通文件。d目录、l软链接、b块设备、c字节文件
find ./ ! -type f  # 查找除了文件类型为普通文件的所有文件

5.按深度等级查找:需要放在第一个条件
find ./ -maxdepth 1  # 只查找当前目录,不查找当前目录的子目录。

6.按inode号查找
find ./ -inum inode号

7.按序列查找:find不支持{}
find ./ -name "[1-3].txt"       # 查找文件名为1.txt到3.txt的文件
find ./ -name "[1-3][0-9].txt"  # 查找文件名为10.txt到39.txt的文件,[]表示任意单个
find ./ -name "[10].txt"        # 查找文件名为1.txt或0.txt的文件

注意
在企业中,如果服务器在对外提供服务,禁止从/查起。
find是从当前路径开始查起,不是只查当前路径
方法一:结合xargs
1.删除查找到的内容
find ./ -name "1.txt" | xargs rm
2.复制查找到的内容
find ./ -name "1.txt" | xargs -i cp {} /bak
3.移动查找到的内容
find ./ -name "1.txt" | xargs -i mv {} /tmp
4.查看查找到的内容
find ./ -name "1.txt" | xargs ls
5.打包查找到的内容
find ./ -name "*.txt" | xargs tar zcvf all.tar.gz

方法二:结合exec:\用于还原本义,将;转义为真正的普通字符分号
find ./ -name "1.txt" -exec rm {} \;

方法三:结合``或$():会先执行反引号或$()中的内容
rm -rf `find ./ -name "1.txt"`
rm -rf $(find ./ -name "1.txt")
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值