例1,根据文件属性查找:
find . -type f -name "*config*" ! -path "./tmp/*" ! -path "./scripts/*" ! -path "./node_modules/*"
Explanation:
find . - Start find from current working directory (recursively by default)
-type f - Specify to find that you only want files in the results
-name "*_peaks.bed" - Look for files with the name ending in _peaks.bed
! -path "./tmp/*" - Exclude all results whose path starts with ./tmp/
! -path "./scripts/*" - Also exclude all results whose path starts with ./scripts/
2. 指定忽略的路径
使用find命令在linux系统中查找文件时,有时需要忽略某些目录,可以使用 -prune 参数来进行过滤。不过必须注意:要忽略的路径参数要紧跟着搜索的路径之后,否则该参数无法起作用。
例如:指定搜索/home/zth目录下的所有文件,但是会忽略/home/zth/astetc的路径:
find /home/zth -path "/home/zth/astetc" -prune -o -type f -print
按照文件名来搜索则为:
find /home/zth -path "/home/zth/astetc" -prune -o -type f -name "cdr_*.conf" -print
要忽略两个以上的路径如何处理?
find /home/zth ( -path "/home/zth/astetc" -o -path "/home/zth/etc" ) -prune -o -type f -print
find /home/zth ( -path "/home/zth/astetc" -o -path "/home/zth/etc" ) -prune -o -type f -name "cdr_*.conf" -print
注意:( 和 ) 前后都有空格。