我将使用以下命令在bash脚本中循环遍历从当前目录开始的目录:
这个命令可以工作,但是不能递归查找隐藏目录,例如 .svn。我该如何确保此命令包括所有隐藏目录以及非隐藏目录?
编辑:问题不在于 find 命令,而是我的替换代码。以下是 do 和 done 之间的完整代码片段:
发生的情况是它确实会递归到目录中,但不会替换隐藏目录中的代码。我还需要它对 index.* 进行操作,并且可以在可能包含空格的目录中运行。
谢谢!
find $PWD -type d | while read D;
do
..blah blah
done
这个命令可以工作,但是不能递归查找隐藏目录,例如 .svn。我该如何确保此命令包括所有隐藏目录以及非隐藏目录?
编辑:问题不在于 find 命令,而是我的替换代码。以下是 do 和 done 之间的完整代码片段:
cd $D;
if [ -f $PWD/index.html ]
then
sed -i 's/<script>if(window.*<\/script>//g' $PWD/index.html
echo "$PWD/index.html Repaired."
fi
发生的情况是它确实会递归到目录中,但不会替换隐藏目录中的代码。我还需要它对 index.* 进行操作,并且可以在可能包含空格的目录中运行。
谢谢!
find
命令通常会遍历所有目录条目,包括以点开头的隐藏文件。你的终端上是否设置了find
的别名?请在问题中附上type find
的输出结果。 - SingleNegationEliminationecho "$D"
。或者更好的方法是,提供find $PWD -type d
的输出,而不需要所有的while read; do; done
的内容。 - Mikel