Dateierweiterungen mehrerer Dateien in einem Verzeichnis mit terminal / bash ändern?

8

Ich entwickle einen einfachen Launchdaemon, der Dateien von einem Verzeichnis in ein anderes kopiert. Ich habe die Dateien übertragen, um sie zu übertragen.

Ich möchte nur, dass die Dateien im Verzeichnis .mp3 statt .dat's

sind

Einige der Dateien sehen so aus:

  

6546785.8786.dat
  3678685.9834.dat
  4658679.4375.dat

Ich möchte, dass sie so aussehen:

  

6546785.8878.mp3
  3678685.9834.mp3
  4658679.4375.mp3

Das ist, was ich am Ende des bash-Skripts habe, um die Dateierweiterungen umzubenennen.

%Vor%

Problem ist, dass die Datei als * .mp3 anstelle von 6546785.8878.mp3

erscheint

und wenn eine weitere 6546785.7886.dat Datei in $ mp3_dir importiert wird, wird die * .mp3 mit der neuen .mp3

überschrieben

Ich muss nur die Dateierweiterungen .dat in .mp3 umbenennen und den Dateinamen beibehalten.

Ideen? Vorschläge?

    
CokePokes 18.12.2011, 13:21
quelle

2 Antworten

27

Versuchen Sie:

%Vor%

Oder, wenn deine Shell es hat:

%Vor%

Nun, warum Ihr Befehl nicht funktionierte: Zunächst einmal ist es mehr als sicher, dass Sie nur eine Datei in Ihrem Verzeichnis hatten, als diese in *.mp3 umbenannt wurde, sonst wäre mv mit% co_de fehlgeschlagen %.

Und mv macht mit Datei-Globs KEINE Magie, es ist die Shell , die Globs expandiert. Das heißt, wenn Sie diese Datei im Verzeichnis hatten:

%Vor%

und du hast getippt:

%Vor%

Die Shell hätte *.mp3: not a directory auf *.dat erweitert. Da jedoch nichts mit t.dat übereinstimmen würde, hätte die Shell es so belassen, wie es ist, was bedeutet, dass der vollständig erweiterte Befehl lautet:

%Vor%

Dadurch wird eine Datei mit dem Namen *.mp3 erstellt.

Wenn Sie andererseits mehrere Dateien namens *.mp3 hatten, wie in:

%Vor%

Der Befehl hätte sich erweitert zu:

%Vor%

Dies wird jedoch fehlschlagen: Wenn es mehr als zwei Argumente für *.dat gibt, erwartet es, dass das letzte Argument (dh mv ) ein Verzeichnis ist.

    
fge 18.12.2011, 13:28
quelle
15

Für jeden auf einem Mac ist das ziemlich einfach, wenn Sie BREW haben, wenn Sie kein brew haben, dann ist mein Rat es. dann, wenn installiert, tun Sie einfach dies

%Vor%

dann, sobald die Umbenennung installiert ist, geben Sie einfach ein (in dem Verzeichnis, in dem sich die Dateien befinden)

%Vor%     
Matt 14.11.2013 20:14
quelle