在我的项目中,我有很多测试文件,它们的名称为*.ts
.
它们都在__tests__
文件夹中,但也可以是__tests__/test1.ts
,__tests__/dir2/test2.ts
等等。
我想将这些文件重命名为*.test.ts
.
我怎样才能做到呢?
例子:
project/src/__tests__/app.ts
->project/src/__tests__/app.test.ts
project/src/dashboard/__test__/start/login.ts
->project/src/dashboard/__test__/start/login.test.ts
我成功地找到了这些文件:
find . -type f -path '*__tests__*.ts'
但不知道如何重命名它们。
答案1
您需要-exec
调用 shell 来执行重命名的选项。
find . -type f -path '*__tests__*.ts' -exec sh -c '
for f; do
mv -- "$f" "${f%ts}test.ts"
done
' findsh {} +
-exec sh -c
调用 shell 并运行:for f; do mv -- "$f" "${f%ts}test.ts"; done
循环找到的文件,将它们重命名为ts
已删除的目标,并test.ts
在其位置上放置 a 。
- 在 中
findsh {} +
,findsh
只是一个占位符,是将文件提供给命令(shell){} +
的构造。-exec