一、find -name 无任何参数的效果,会搜索所有目录。
二、排除某个目录方法一 find ! -path "./device/*" -name default_wallpaper*
!:表示执行这条指令的时候,排除后面 -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
七、参考文章