【发布时间】:2013-05-29 20:04:10
【问题描述】:
我想忽略所有隐藏文件,尤其是搜索(以及后来替换)文件时的 .git 和 .svn 文件,我发现在许多在线教程中描述的排除此类隐藏文件的最基本方法并不在这里工作。
find . -not -name ".*"
还将打印隐藏文件。
我要写的脚本是
replace() {
if [ -n "$3" ]; then expr="-name \"$3\""; fi
find . -type f \( $expr -not -name ".*" \) -exec echo sed -i \'s/$1/$2/g\' {} \;
unset expr
}
【问题讨论】:
-
find . -not -name ".*"对我有用。 -
使用
find . -not -name '.*',避免shell扩展。 -
准确地说,它仍然会在隐藏目录中找到(非隐藏)文件。
-
@Rubens 你在考虑参数扩展; glob 不在双引号内展开。