
In meinem Projekt habe ich viele Testdateien mit dem Namen *.ts
.
Sie befinden sich alle in __tests__
Ordnern, können aber auch __tests__/test1.ts
, __tests__/dir2/test2.ts
usw. heißen.
Ich möchte diese Dateien umbenennen in *.test.ts
.
Wie könnte ich das machen?
Beispiele:
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
Ich konnte diese Dateien wie folgt finden:
find . -type f -path '*__tests__*.ts'
aber keine Ahnung, wie ich sie umbenennen kann.
Antwort1
Sie benötigen die -exec
Möglichkeit, zum Durchführen der Umbenennung eine Shell aufzurufen.
find . -type f -path '*__tests__*.ts' -exec sh -c '
for f; do
mv -- "$f" "${f%ts}test.ts"
done
' findsh {} +
-exec sh -c
Ruft eine Shell auf und führt aus:for f; do mv -- "$f" "${f%ts}test.ts"; done
Führt eine Schleife über die gefundenen Dateien aus, benennt sie in ein Ziel um, dessen Zielts
entfernt undtest.ts
an dessen Stelle ein gesetzt wird.
- In ist es nur ein Platzhalter und die Konstruktion
findsh {} +
, die dem Kommando (der Shell) die Dateien übergibt.findsh
{} +
-exec