Ich habe einen riesigen Dateibaum. Einige Dateien haben den gleichen Namen, aber in anderen Fällen, z . B. some_code.c
und Some_Code.c
.
Wenn ich versuche, es in ein NTFS / FAT-Dateisystem zu kopieren, werde ich gefragt, ob die Datei ersetzt oder übersprungen werden soll.
Gibt es eine Möglichkeit, solche Dateien automatisch umzubenennen, indem beispielsweise (1)
der Name der Konfliktdatei hinzugefügt wird (wie dies bei Windows 7 der Fall ist)?
sudo fdisk -l /dev/sda
) zutouch foo; touch Foo
erstellen , und tat und endete mit 2 Dateienfoo
undFoo
. Aber ich bin nicht neugierig darauf, Windows neu zu starten, um zu sehen, wie sie dort aussehen. Ist das nur ein FAT-Problem? Ah - Ich habe einen USB-Stick mit FAT und könnte ein FAT-System in einer Datei erstellen, ... - einen Moment bitte. :)Antworten:
Viele GNU - Tools wie
cp
,mv
undtar
Unterstützung Erstellung von Backup - Dateien , wenn das Ziel vorhanden ist . Das heißt, wenn beim Kopierenfoo
nachbar
bereits eine Datei aufgerufen wurdebar
, wird die vorhandenebar
umbenannt und enthält nach dem Kopierenbar
den Inhalt vonfoo
. Standardmäßigbar
wird in umbenanntbar~
, das Verhalten kann jedoch geändert werden:Es gibt andere Varianten, z. B. das Erstellen nummerierter Sicherungen nur, wenn bereits eine vorhanden ist. Weitere Informationen finden Sie im coreutils-Handbuch .
quelle
brew install coreutils
und dann den Befehlgcp
.Ich habe es versucht
mögliche Kandidaten zu finden, und mcopy zeigte sich.
zeigt eine vielversprechende Option
-D clash-option
ist das nicht cool? Aber nicht so cool - es wird nicht beschrieben. Es gibt jedoch einige Hinweise zu mtools.dvi, die ich auf meinem System erfolglos und über Google erfolglos durchsucht habe. Mit Google habe ich dann direkt nach dieser Site gesuchtmcopy clash-option
und sie gefunden .Ich habe einen kurzen Test gemacht
zum testen auf autorename und targetdir
a
- anstelle von autorename wurde ich gebeten, jede datei zu ignorieren oder zu überschreiben, das dumme s ....Meine Version ist
mtools-4.0.10
und die Hilfeseite ist von 1996 - 15 Jahre alt. Sollten wir in der Zwischenzeit wirklich einige Features verlieren?Ich würde die Arbeit in zwei Schritte aufteilen:
find
dieses Skript für jede Datei aus, die Sie kopieren möchten.Sollen wir bei diesem Ansatz behilflich sein? :)
Hier ist ein Skript zum automatischen Benennen von Dateien:
und das ist mein Testaufruf:
Hinweis: -maxdepth, -name und -type werden verwendet, um die Anzahl der betroffenen Dateien drastisch zu beschränken. Ich habe das Skript weder auf tiefere Dateistrukturen noch auf Leerzeichen in Dateinamen und andere, unkonventionelle Zeichen wie Zeilenvorschub, Seitenvorschub usw. getestet.
Ich habe .1 verwendet, weil es in den meisten Befehlen keine Probleme macht, während a (und a) oft maskiert werden müssen.
quelle
cp
Zumindest nicht mit GNU .Es wird dringend empfohlen, keine doppelten Dateinamen zu verwenden (Groß- und Kleinschreibung wird ignoriert). Suchen Sie eine Liste solcher Duplikate mit
Benennen Sie dann bei der Ausgabe eine der Dateien für jede Zeile manuell um. Vermeiden Sie in Zukunft das Erstellen von Duplikaten.
quelle