如何使用find排除某个目录或者文件?
1. 使用grep -v,曲线救国。
eg: 查找所有三天前被修改的文件,并排除/var目录
find / -type f -mtime -3 |grep -v /var
2. 使用-path参数,但是这个参数在组合条件时,个人觉得不是很好用
eg: 查找所有三天前被修改的log文件,并排除/var目录
find / -type f -mtime -3 ! -path '/var/' -prune -o -name "*.log" -print
3. 使用-regex正则参数,个人推荐使用这个,使用起来比-path参数好用而且没有组合条件的问题
eg:查找三天前一天内的文件,并且排除/va*、/pro*
find / -type f ! -regex /va.* ! -regex /pro.* ! -empty -mtime -3 -mtime +1
tips:
如果想在ssh远程命令中使用类似'awk "{print $1}"'这种带有$变量时,要使用\符号进行转义!