내 프로젝트에는 이라는 이름의 테스트 파일이 많이 있습니다 *.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