Mehrfach kopieren & umbenennen
Moderators: Hacker, Stefan2, white
Mehrfach kopieren & umbenennen
Hallo,
ich möchte auf einem NAS einige hundert Dateie(n) umbenennen. Das ist mit Total Commander und dem Mehrfach Umbenennungs Tool möglich.
Wie erkläre ich das ? Also ich nutze das Programm Kodi für den Zugriff auf meine Medien auf dem NAS. Allerdings nutze ich Kodi in unterschiedlichen Programmversionen auf unterschiedlichen Geräten (Linux/Windows/Android). Diese unterschiedlichen Versionen erfordern für den Dateizugriff unterschiedliche Namenskonventionen. Das heisst Programmversion 1 verlangt z. Bsp. cdart.png und Programmversion 2 verlangt für die gleiche Datei eine neue Bezeichnung discart.png. Wenn ich mit Total Commander alles von cdart.png in discart.png umbenenne findet die Programmversion 1 die entsprechende Datei cdart.png logischerweise nicht mehr.
Ich muss also alle cdart.png Dateien erst mal kopieren und im jeweiligen Quellverzeichnis "ablegen". Im zweiten Schritt kann ich dann die erstellte Kopie der Datei umbenennen in discart.png. Im jeweiligen Quellverzeichnis sollen am Ende zwei identische Datei(en) liegen, die nur unterschiedlich benannt sind - einmal cdart.png und einmal discart.png .
Wie kann ich das mit Total Commander machen ? Brauch ich eventuell noch ein Plugin dazu ? Geht das vielleicht auch anders einfacher ?
Vielen Dank im Voraus
pritt
ich möchte auf einem NAS einige hundert Dateie(n) umbenennen. Das ist mit Total Commander und dem Mehrfach Umbenennungs Tool möglich.
Wie erkläre ich das ? Also ich nutze das Programm Kodi für den Zugriff auf meine Medien auf dem NAS. Allerdings nutze ich Kodi in unterschiedlichen Programmversionen auf unterschiedlichen Geräten (Linux/Windows/Android). Diese unterschiedlichen Versionen erfordern für den Dateizugriff unterschiedliche Namenskonventionen. Das heisst Programmversion 1 verlangt z. Bsp. cdart.png und Programmversion 2 verlangt für die gleiche Datei eine neue Bezeichnung discart.png. Wenn ich mit Total Commander alles von cdart.png in discart.png umbenenne findet die Programmversion 1 die entsprechende Datei cdart.png logischerweise nicht mehr.
Ich muss also alle cdart.png Dateien erst mal kopieren und im jeweiligen Quellverzeichnis "ablegen". Im zweiten Schritt kann ich dann die erstellte Kopie der Datei umbenennen in discart.png. Im jeweiligen Quellverzeichnis sollen am Ende zwei identische Datei(en) liegen, die nur unterschiedlich benannt sind - einmal cdart.png und einmal discart.png .
Wie kann ich das mit Total Commander machen ? Brauch ich eventuell noch ein Plugin dazu ? Geht das vielleicht auch anders einfacher ?
Vielen Dank im Voraus
pritt
- sqa_wizard
- Power Member
- Posts: 3893
- Joined: 2003-02-06, 11:41 UTC
- Location: Germany
Re: Mehrfach kopieren & umbenennen
Die eleganteste Methode wäre die Verwendung von Hardlinks discart.png <-> cdart.png.
Welches Dateisystem verwendet dein NAS (NTFS, exFAT, ext4, ...) ?
Welches Dateisystem verwendet dein NAS (NTFS, exFAT, ext4, ...) ?
#5767 Personal license
Re: Mehrfach kopieren & umbenennen
Hallo und willkommen 2pritt!
Aufgabe: Erstelle in allen Unterordnern eine Kopie der Datei "cdart.png" mit Namen "discart.png"
- Das Kopieren erledigt der DOS-Befehl COPY
COPY cdart.png discart.png
Starte mal cmd.exe und gibt als Befehl ein: copy /?
- Das Ausführen des Kopierbefehls in allen Unterordnern kann man zB mittels ForFiles erledigen.
Starte eine cmd.exe und gibt als Befehl ein: forfiles /?
Der Befehl für dein Anliegen sollte so funktionieren, kannst du das mal testen?
- Erstelle eine Kopie deiner Sammlung
- Gehe im TC in den Hauptordner dieser Kopie
- Starte eine cmd.exe (Menü Befehle) und gib Folgendes ein:
FORFILES /S /M cdart.png /C "cmd /c copy @file discart.png"
FORFILES [/P Pfadname] [/M Suchmaske] [/S] [/C Befehl] [/D [+ | -] {dd.MM.yyyy | TT}]
Beschreibung:
Wählt eine Datei (oder einen Satz von Dateien) und führt einen
Befehl auf dieser Datei aus. Dies ist für Batchaufträge hilfreich.
Parameterliste:
/P Pfadname Bestimmt den Pfad, auf dem die Suche gestartet wird. Standardordner ist der zurzeit verwendete Ordner (.).
/M Suchmaske Sucht nach Dateien laut einer Suchmaske. Die Standardsuchmaske ist "*".
/S . .. . . . . . Durchsucht Unterverzeichnisse rekursiv, wie z. B. "DIR /S".
/C Befehl . . . Bestimmt den für jede Datei auszuführenden Befehl.
Aufgabe: Erstelle in allen Unterordnern eine Kopie der Datei "cdart.png" mit Namen "discart.png"
- Das Kopieren erledigt der DOS-Befehl COPY
COPY cdart.png discart.png
Starte mal cmd.exe und gibt als Befehl ein: copy /?
- Das Ausführen des Kopierbefehls in allen Unterordnern kann man zB mittels ForFiles erledigen.
Starte eine cmd.exe und gibt als Befehl ein: forfiles /?
Der Befehl für dein Anliegen sollte so funktionieren, kannst du das mal testen?
- Erstelle eine Kopie deiner Sammlung
- Gehe im TC in den Hauptordner dieser Kopie
- Starte eine cmd.exe (Menü Befehle) und gib Folgendes ein:
FORFILES /S /M cdart.png /C "cmd /c copy @file discart.png"
FORFILES [/P Pfadname] [/M Suchmaske] [/S] [/C Befehl] [/D [+ | -] {dd.MM.yyyy | TT}]
Beschreibung:
Wählt eine Datei (oder einen Satz von Dateien) und führt einen
Befehl auf dieser Datei aus. Dies ist für Batchaufträge hilfreich.
Parameterliste:
/P Pfadname Bestimmt den Pfad, auf dem die Suche gestartet wird. Standardordner ist der zurzeit verwendete Ordner (.).
/M Suchmaske Sucht nach Dateien laut einer Suchmaske. Die Standardsuchmaske ist "*".
/S . .. . . . . . Durchsucht Unterverzeichnisse rekursiv, wie z. B. "DIR /S".
/C Befehl . . . Bestimmt den für jede Datei auszuführenden Befehl.
Re: Mehrfach kopieren & umbenennen
@ *sqa_wizard
Das wäre in der Tat eine Idee, welche sich mit Boardmitteln erledigen liese ... Das Dateisystem ist xfs ... Ich weiß nur nicht ob kodi die Hardlinks dann akzeptiert weil dieses kodi dann auf Windows läuft.
Das wäre in der Tat eine Idee, welche sich mit Boardmitteln erledigen liese ... Das Dateisystem ist xfs ... Ich weiß nur nicht ob kodi die Hardlinks dann akzeptiert weil dieses kodi dann auf Windows läuft.
Re: Mehrfach kopieren & umbenennen
@Stefan2
hmm, cmd wird funktionieren auf einem SMB verbundenen Netzlaufwerk ? Allerdings hatte ich auch schon an Powershell gedacht, damit komm ich aber nicht zurecht. Das Problem wäre dann wieder das arbeiten von Windows aus auf verbundenen Linuxlaufwerken. Ich muss das mal probieren morgen, für heute ist Schicht (muss um 4 raus) Danke für die Denkanstösse.
hmm, cmd wird funktionieren auf einem SMB verbundenen Netzlaufwerk ? Allerdings hatte ich auch schon an Powershell gedacht, damit komm ich aber nicht zurecht. Das Problem wäre dann wieder das arbeiten von Windows aus auf verbundenen Linuxlaufwerken. Ich muss das mal probieren morgen, für heute ist Schicht (muss um 4 raus) Danke für die Denkanstösse.
Last edited by pritt on 2021-02-28, 20:24 UTC, edited 1 time in total.
Re: Mehrfach kopieren & umbenennen
Das sehe ich auch so. Und da Kodi erwähnt wurde, darf man annehmen, dass ein SSH-Server auf dem System vorhanden oder nachinstallierbar ist. Damit lassen sich direkt auf der Konsole des Systems die Links anlegen. Ein dafür passendes Skript lässt sich recht einfach erstellen.sqa_wizard wrote: 2021-02-28, 18:23 UTCDie eleganteste Methode wäre die Verwendung von Hardlinks discart.png <-> cdart.png.
XFS auf Windows? Bist du sicher?pritt wrote: 2021-02-28, 20:19 UTCDas Dateisystem ist xfs ... Ich weiß nur nicht ob kodi die Hardlinks dann akzeptiert weil dieses kodi dann auf Windows läuft.
Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Re: Mehrfach kopieren & umbenennen
Nein ... die Daten liegen auf dem NAS auf einer xfs Partion, welche per Samba in Windows sichtbar / verbunden ist. Der TC läuft auf Windows. Das Umbenennen würde funktionieren, nur das kopieren und als Kopie ablegen (vor dem umbennennen) fehlt mit
Re: Mehrfach kopieren & umbenennen
ssh läuft auf Windows und auch auf dem NAS - ich meinte ich weiss nicht ob das kodi auf dem Windowssystem die (Linux-)Symlinks akzeptiert. Das muss ich mal an einem Ordner probieren.Dalai wrote: 2021-02-28, 20:23 UTC Das sehe ich auch so. Und da Kodi erwähnt wurde, darf man annehmen, dass ein SSH-Server auf dem System vorhanden oder nachinstallierbar ist. Damit lassen sich direkt auf der Konsole des Systems die Links anlegen. Ein dafür passendes Skript lässt sich recht einfach erstellen.
mit / von solchen scripten habe ich leider keine Ahnung
Re: Mehrfach kopieren & umbenennen
Hardlinks können immer nur innerhalb desselben Volume erzeugt werden, egal ob das auf einem Windows oder Linux passiert. Und das Erzeugen geht auch nur lokal, d.h. die Links müssen direkt auf dem NAS erzeugt werden. Wie ich schon schrieb, geht sowas per SSH-Zugang wohl am sinnvollsten.
Grüße
Dalai
Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Re: Mehrfach kopieren & umbenennen
Dem kann man abhelfen. Hier ein kleines Beispiel:
Code: Select all
#!/bin/sh
if [ -z "$1" ]; then
echo "Please provide directory to process as parameter!"
exit 1
fi
#############################
DIR="$1"
NAME="cdart.png"
#############################
NAME2="discart.png"
if [ -d "${DIR}" ]; then
find "${DIR}" -name "${NAME}" |
while read line; do
if [ ! -f "$(dirname "${line}")/${NAME2}" ]; then
echo "${line} -> $(dirname "${line}")/${NAME2}"
# ln "${line}" "$(dirname "${line}")/${NAME2}"
fi
done
else
echo "${DIR} not found or not a directory!"
fi
Man könnte das Skript noch so erweitern, dass es auch für den Fall funktioniert, wenn discart.png vorhanden ist, cdart.png aber nicht. Sag Bescheid, falls du das auch noch benötigst.
Ach, fast vergessen: Skript speichern [EDIT] mit Linux-Zeilenumbrüchen(!) [/EDIT] als z.B. cdart.sh, kopieren auf das NAS, ausführbar machen (mindestens für den Eigentümer/Besitzer) und dann mit einem Startverzeichnis als Parameter ausführen. Wenn dir die Ausgabe zusagt, dann entfernst du das einzelne # vor dem ln-Befehl und es tut seine Arbeit.
Grüße
Dalai
Last edited by Dalai on 2021-03-01, 10:00 UTC, edited 2 times in total.
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Re: Mehrfach kopieren & umbenennen
@Dalai:
Vielen Dank für das Scriptbeispiel. Ich schau mir das an. Würde das script auch funktionieren, wenn es bis zu etwa 5 Verzeichnisebenen abtauchen muss ? Also in allen (vorhandenen) Unterverzeichnissen suchen muss ?
Grüsse Pritt
Vielen Dank für das Scriptbeispiel. Ich schau mir das an. Würde das script auch funktionieren, wenn es bis zu etwa 5 Verzeichnisebenen abtauchen muss ? Also in allen (vorhandenen) Unterverzeichnissen suchen muss ?
Grüsse Pritt
Re: Mehrfach kopieren & umbenennen
Das im Skript benutzte "find" durchsucht standardmäßig alle Verzeichnisebenen. Wenn du ein Limit haben willst, kann man das ergänzen:pritt wrote: 2021-03-01, 04:14 UTCWürde das script auch funktionieren, wenn es bis zu etwa 5 Verzeichnisebenen abtauchen muss ? Also in allen (vorhandenen) Unterverzeichnissen suchen muss ?
Code: Select all
find "${DIR}" -maxdepth 5 -name "${NAME}" |
Code: Select all
find "${DIR}" -name "${NAME}" |
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Re: Mehrfach kopieren & umbenennen
@ Dalai: Vielen lieben Dank, ich werde das ausprobieren !