私のプロジェクトにはという名前のテストファイルがたくさんあります*.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
名前が変更されたオプションを実行するには、シェルを呼び出す必要があります。
find . -type f -path '*__tests__*.ts' -exec sh -c '
for f; do
mv -- "$f" "${f%ts}test.ts"
done
' findsh {} +
-exec sh -c
シェルを呼び出し、次を実行します。for f; do mv -- "$f" "${f%ts}test.ts"; done
見つかったファイルを繰り返しts
削除されたターゲットに名前を変更し、test.ts
その場所にを配置します。
- inは、
findsh {} +
コマンド(シェル)にファイルを提供する構文のプレースホルダーですfindsh
。{} +
-exec