So benennen Sie eine Gruppe von Dateien um, deren Namen wie ein Windows-Dateipfad aussehen

9

Ich habe ein paar Dateien mit dem Dateinamen durcheinander gebracht. Alle Dateinamen haben den gleichen Anfang, der als Windows-Dateiverzeichnisse erscheint. Das Problem ist, dass es mehr als 700 Dateien gibt und ich wirklich nicht alle manuell durchbenennen möchte. Dies sind Beispiele für die Dateinamen (Hinweis: Keines davon hat Dateiverzeichnisse):

G:some\really\long\file\path\then\the\name1.jpg
G:some\really\long\file\path\then\the\name2.png
G:some\really\long\file\path\then\the\filename.txt
G:some\really\long\file\path\then\the\file_name.mov
...

Das wichtige Mitnehmen ist, dass jede Datei G:some\really\long\file\path\then\the\vor dem Dateinamen steht, den ich möchte.

Ich möchte also, dass die obigen Dateien so aussehen:

name1.jpg
name2.png
filename.txt
file_name.mov

Ich habe den renameBefehl ausprobiert und war nicht erfolgreich. Ich bin noch neu in Linux und bin mir wirklich nicht sicher, wie ich es anstellen soll oder was ich wirklich googeln soll. Jede Hilfe wäre dankbar.

kingcobra1986
quelle

Antworten:

18

Ich habe gerade alles bis zum letzten Backslash mit entfernt rename

$ rename -n 's/.*\\//' G*
rename(G:some\really\long\file\path\then\the\file_name.mov, file_name.mov)
rename(G:some\really\long\file\path\then\the\filename.txt, filename.txt)
rename(G:some\really\long\file\path\then\the\name1.jpg, name1.jpg)
rename(G:some\really\long\file\path\then\the\name2.png, name2.png)

-nNach dem Testen entfernen , um die Dateien tatsächlich umzubenennen.

Anmerkungen

  • -n Tun Sie nichts, drucken Sie einfach aus, was geändert werden soll
  • s/old/newersetzen olddurchnew
  • .* beliebig viele beliebige Zeichen
  • \\ Der erste Backslash besteht darin, dem zweiten zu entkommen.
  • Da Regex gierig sind, .*\\frisst dieser Ausdruck auch alle vorhergehenden Backslashes.
  • Da die letzten beiden Trennzeichen //leer sind, wird alles, was im Suchteil übereinstimmt, gelöscht
Zanna
quelle
Benötige ich nur die erste Zeile oder muss ich das für jede Datei tun?
Kingcobra1986
Sie brauchen nur die erste Zeile @ kingcobra1986, die anderen sind nur die Ausgabe. *Stimmt mit allen Dateien überein, aber lassen Sie mich das in "Fertig" ändern. G*Jetzt stimmt es mit allen Dateien überein, die mit Gim aktuellen Verzeichnis beginnen, und wird alle auf einmal bearbeiten. Wenn sie sich in mehreren Verzeichnissen befinden, können wir auch auf verschiedene Weise damit umgehen
Zanna
Das hat funktioniert. Können Sie erklären, was genau in dieser Zeile passiert?
Kingcobra1986
1
@ kingcobra1986 sorry, ich habe Notizen hinzugefügt. Ich hoffe, es ist klar, wenn nicht, fragen Sie bitte nach mehr!
Zanna
Ha, ich mag die Idee, das .*\\ seit dem gierigen.*
Ziazis
10

Sie können dies in reiner Form bashmithilfe der Shell-Parametererweiterung tun .

${file##*\\}(Cut-up-to-Last-Prefix) entfernt alles vom Anfang des Dateinamens bis zum letzten \gesehen.

for file in *; do
    mv -v "$file" "${file##*\\}";
done

Die Umbenennungsergebnisse sind:

‘G:some\\really\\long\\file\\path\\then\\the\\file_name.mov’ -> ‘file_name.mov’
‘G:some\\really\\long\\file\\path\\then\\the\\filename.txt’ -> ‘filename.txt’
‘G:some\\really\\long\\file\\path\\then\\the\\name1.jpg’ -> ‘name1.jpg’
‘G:some\\really\\long\\file\\path\\then\\the\\name2.png’ -> ‘name2.png’
αғsнιη
quelle
6

Wenn Sie nach GUI- Lösungen suchen , gibt es viele Anwendungen zum Umbenennen von Massen. Ich würde Thunar vorschlagen , den Standard-Dateimanager für Xfce. Es wird mit einem praktischen Bulk-Umbenennungs-Tool geliefert. Sie können Thunar installieren, indem Sie den folgenden Befehl im Terminal ausführen:

sudo apt-get install thunar

Sie können wahrscheinlich auch von Ubuntu Software installieren.

Verwendung des Dienstprogramms

  1. Starten Sie nach der Installation von Thunar das Dienstprogramm Bulk Rename .
  2. Klicken Sie auf das Symbol + und fügen Sie die Dateien hinzu, die Sie umbenennen möchten.
  3. Klicken Sie auf das Dropdown-Feld direkt unter der Liste der ausgewählten Dateien und wählen Sie Suchen und Ersetzen .
  4. In der Suche nach: Feld eingeben G:some\really\long\file\path\then\the\(der Teil , den Sie loswerden wollen), lassen Sie das Ersetzen durch: Kasten leeren. Die Vorschau der Änderungen sollte in der Spalte Neuer Name angezeigt werden.
  5. Um die Änderungen zu übernehmen, klicken Sie auf die Schaltfläche Dateien umbenennen.

Neben Suchen und Ersetzen unterstützt dieses Dienstprogramm die folgenden Aktionen:

  • Datum / Uhrzeit einfügen
  • Einfügen / Überschreiben
  • Nummerierung
  • Zeichen entfernen
  • Grossbuchstaben Kleinbuchstaben
pomsky
quelle
gibt es keinen für Nautilus (ich glaube schon!)? Es scheint ziemlich übertrieben, einen neuen Dateibrowser für diesen Zweck zu installieren.
Zanna
@Zanna Es gibt eine in v3.22, aber ich denke immer noch nicht in Ubuntu Repos verfügbar.
Pomsky
2
Thunar ist sehr praktisch und scheint gut mit anderen Dateibrowsern zusammenzuarbeiten. Ich denke, es kann sich lohnen, es für diesen Zweck zu installieren. Aber können Sie diese Antwort mit einer Erklärung erweitern, wie Sie in Thunar Bulk-Umbenennungen durchführen können?
Eliah Kagan
1
@ EliahKagan und es ist auch leicht
pomsky
Schön gemacht, jetzt kann ich upvoten (ich habe ein Xubuntu, in dem ich es auch testen kann :))
Zanna