Das sollte relativ trivial sein, aber ich habe seit einiger Zeit ohne viel Glück versucht. Ich habe ein Verzeichnis mit vielen Verzeichnissen, jedes mit einer eigenen Struktur und Dateien.
Ich suche alle .java-Dateien in einem beliebigen Verzeichnis unter dem Arbeitsverzeichnis und benenne sie in einen bestimmten Namen um. Zum Beispiel möchte ich alle Java-Dateien "test.java" nennen.
Wenn die Verzeichnisstruktur ist:
%Vor%Ich möchte einfach umbenennen in:
%Vor%Natürlich ist ein Teil meines Problems, dass die Pfade Leerzeichen enthalten können. Ich muss mir keine Sorgen darüber machen, Klassen oder irgendetwas in der Datei umzubenennen, nur den Dateinamen an Ort und Stelle.
Wenn mehr als eine .java Datei in einem Verzeichnis vorhanden ist, macht es mir nichts aus, wenn es überschrieben wird oder eine Eingabeaufforderung erscheint (entweder ist ok, es ist unwahrscheinlich, dass es mehr als 1 in gibt jedes Verzeichnis.
Was ich versucht habe:
Ich schaue in mv und finde, aber wenn ich sie zusammen schiebe, scheine ich es falsch zu machen, ich möchte sicherstellen, dass sie an ihrem aktuellen Ort bleiben und umbenennen und nicht bewegen.
Danke, ich schätze jede Hilfe sehr.
Die GNU-Version von find
hat eine -execdir
-Aktion, die das Verzeichnis in den Speicherort der Datei ändert.
Wenn Ihre Version von find
-execdir
nicht unterstützt, können Sie den Auftrag mit: