Bash
重命名具有特定名稱的文件夾中的所有具有特定格式的文件
在我的項目中,我有很多名為
*.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'
但不知道如何重命名它們。
您需要
-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
已被刪除並將 atest.ts
放在其位置。In
findsh {} +
,findsh
只是一個佔位符,並且{} +
是將文件提供給-exec
命令(shell)的結構。