2022-11-30 linux find ! -path “./device/*“ -name 命令搜索排除文件夹,后面加 就可以xargs rm -rf 把搜索到文件删除。

一、find -name 无任何参数的效果,会搜索所有目录。

 二、排除某个目录方法一 find ! -path  "./device/*"  -name default_wallpaper*,排除多个文件夹的方法

find ! \( -path "./.repo/*" -o -path "./buildroot/*" \) -name .git
!:表示执行这条指令的时候,排除后面 -path指定的目录,
-path:指定目录参数,后面跟的是绝对路径或相对路径,注意,后面的 /* 一定要写。
-name:指定搜索的文件名

三、方法二:使用find命令在linux系统中查找文件时,有时需要忽略某些目录,可以使用"-path 过滤的目录路径 -prune -o"参数来进行过滤。不过必须注意:要忽略的路径参数要紧跟着搜索的路径之后,否则该参数无法起作用

 

四、过滤多个文件夹方法 

 五、查找并且删除,后面加 就可以xargs    rm    -rf,我测试用-prune -o的话会把过滤目录下的所有文件都删调,用 ! -path的方式才可以实现。

六、参考内容

# 在当前目录下排除abc目录,查找所有文件
find . -path "./abc" -prune -o -print

# 在当前目录下排除abc目录,查找所有以.txt结尾的文件【方式一】
find . -path "./abc" -prune -o -name "*.txt" -print

# 在当前目录下排除abc目录,查找所有以.txt结尾的文件【方式二】
find . -name "*.txt" -not -path "./abc/*"

# 在当前目录下排除abc和def目录,查找所有以.txt结尾的文件
find . \( -path ./abc -o -path ./def \) -prune -o -name "*.txt" -print

# 在当前目录下排除abc目录和def/h.txt文件,查找所有以.txt结尾的文件
find . \( -path ./abc -o -path ./def/h.txt \) -prune -o -name "*.txt" -print

# 在当前目录下排除abc目录和def/h.txt文件和jk目录,查找所有以.txt结尾的文件
find . \( -path ./abc -o -path ./def/h.txt -o -path ./jk \) -prune -o -name "*.txt" -print

# 在当前目录下查找所有不是以.html结尾的文件
find . ! -name "*.html" -type f

七、参考文章

find 排除不希望搜索的目录 - 简书

find查找时排除目录及文件 - paul_hch - 博客园

find命令 如何排除某个目录_lbaihao的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值