我有一个目录,其内容永远不会被 find 找到,所以我给 find 起了别名,如下所示:
alias find='find -not -path "*.sync*"'
问题是,现在 find 抱怨每当我使用类似find -depth
.还有其他方法可以干净地做到这一点吗?
答案1
-not
中不存在名为 的运算符find
。你的意思!
?-path
是在许多实现中找到的扩展find
,但不是全部。
您的主要问题可能是所有路径名参数必须首先出现在find
命令行上,如果您在扩展别名之后添加路径名类型参数,则会find
以错误的顺序获得参数。
您的问题不存在通用解决方案,因为您可能需要find
根据具体情况在要排除的路径之前或之后添加更多参数。
您可以尝试:
find() {
path=$1
shift
command find "$1̈́" ! -path '*.sync' "$@"
}
但这只允许一种路径类型参数。