FILES=`find . -type f -name '*.js'`
for file in $FILES
do
# some task
done
这将遍历所有 *.js 文件,但假设还有一些.spec.js文件我想跳过。
a.js
a.spec.js
b.js
x.spec.js
c.js
应该迭代:
a.js
b.js
c.js
FILES=`find . -type f -name '*.js'`
for file in $FILES
do
# some task
done
这将遍历所有 *.js 文件,但假设还有一些.spec.js文件我想跳过。
a.js
a.spec.js
b.js
x.spec.js
c.js
应该迭代:
a.js
b.js
c.js
这是您要查找的代码:
find . -type f \( -iname "*.js" -not -iname "*.spec.js" \)
只需添加一个实现您不想要特定文件名模式的条件:
FILES=`find . -type f -name '*.js'`
for file in $FILES
do
if [[ $file != *.spec.js ]]; then
echo $file
fi
done
您正在寻找!
find 的否定功能以不匹配具有特定名称的文件。另外wholename
我认为使用应该更快。
find . ! -name '*.spec*'
所以你的最终命令(未经测试)将是:
find . -type f ! -name '*.js' -wholename '*.php'