Suchen/ Ersetzen in Dateinamen?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
pcace
Beiträge: 204
Registriert: 28.08.2011 01:08:55

Suchen/ Ersetzen in Dateinamen?

Beitrag von pcace » 20.03.2021 16:57:22

Hi,

ich habe hier viele 100.000 Dateien von denen viele ein ":2f" im Dateinamen haben. Blöderweise führt das dazu, dass mein NAS die dateien nicht backuppen möchte.
Ich würde jetzt gern diese ":2f" in ein Leerzeichen zum beispiel tauschen.

Wie könnte ich das machen?

Gruß

Benutzeravatar
hikaru
Moderator
Beiträge: 11524
Registriert: 09.04.2008 12:48:59

Re: Suchen/ Ersetzen in Dateinamen?

Beitrag von hikaru » 20.03.2021 17:08:53

Das ginge z.B. mit Debianrename:

Code: Alles auswählen

$ ls -1
ab:2fc.txt 
d:2fef.txt
$ rename -v 's/:2f/ /' *
ab:2fc.txt renamed as ab c.txt
d:2fef.txt renamed as d ef.txt
$ ls -1
ab c.txt 
d ef.txt
Interessanter fände ich es aber die Frage zu lösen warum das Backup diese Dateien nicht sichern möchte.

pcace
Beiträge: 204
Registriert: 28.08.2011 01:08:55

Re: Suchen/ Ersetzen in Dateinamen?

Beitrag von pcace » 20.03.2021 17:35:32

Ja, das ist natürlich richtig.
Ich habe hier eine Fritzbox an der eine Festplatte hängt auf der 4-5TB Liegen. dazu habe ich ein Qnap NAS laufen welches sich ein mal pro Woche eine Sicherungskopie über FTP von der Fritzboxfreigabe macht. Bisher ist mir da auch nix komisches aufgefallen, nur habe ich jetzt mal aus langer Weile das Log angesehen und festgestellt. dass:
1. Dort viele (ca. 200) dateien verstreut sind, welche ein ":2f" im Dateinamen haben. meistens da wo eigentlich ein Leerzeichen oder umlaut im Dateinamen sein sollte...). Ich gehe ein bischen davon aus, dass das die nicht so angelegt wurden, sondern dass das mal passiert ist bei einem Einspielen von irgendeinem Backup vor langer zeit. (Lieder hatte ich immer mal wieder fatale Festplattencrashes bei denen ich über abenteuerliche Art und Weisen die daten wieder zurück geholt habe...)
2. ebendiese daten nicht kopiert werden, sondern ich zum beispiel so eine Ausgabe bekomme:
[2021/03/20 02:01:30] # WARNING: Skip the "Hugo_Sync/H/Studium/MA Semester 1/05_FOTOS/ORT/Fotogruppe/FotoPräsentation/3 Hawa/Untere Fischbachstr:2fErspachstr_1.CR2" file which has an unsupported filename!
Das liegt nicht an dem *.CR2 (da andere CR2 dateien wunderbar gebackupt werden, sondern m.E. eben an dem :2f - jedenfalls ist das der gemeinsame nenner wenn ich die Fehlermeldungen anschaue...

Da die Festplatte an der Fritzbox scon so eine Art Backup ist, welches dann vom NAS wiederum gebackuppt wird (paranoid?!) würde ich gern einfach diese Dateinamen so anpassen, dass alle Dateien mitkommen...

Danke also für das beispiel unten, nur müsste das noch Rekursiv durch alle Ordner laufen.

Gruß und Dank schonmal für Ideen!


PS.: ich hab mal in einem testverzeichnis das hier probiert:
find . -name '*:2f*' -exec rename -v 's/:2f/ /' * {} \;
allerdings macht find das jetzt 3 mal hintereinander... was ist da falsch?

Code: Alles auswählen

find . -name '*:2f*' -exec rename -v 's/:2f/ /' * {} \;
2003_WAR AND ARCHITECTURE:2f Three Principles | LEBBEUS WOODS.pdf renamed as 2003_WAR AND ARCHITECTURE  Three Principles | LEBBEUS WOODS.pdf
2012_Architecture and War:2f From Baghdad to Kabul – Les carnets de l’Ifpo.pdf renamed as 2012_Architecture and War  From Baghdad to Kabul – Les carnets de l’Ifpo.pdf
2014_ Between Tradition and Modernity:2f Determining Spatial Systems ofPrivacy in the Domestic Architecture of Contemporary IraqAl.pdf renamed as 2014_ Between Tradition and Modernity  Determining Spatial Systems ofPrivacy in the Domestic Architecture of Contemporary IraqAl.pdf
'./2003_WAR AND ARCHITECTURE:2f Three Principles | LEBBEUS WOODS.pdf' not renamed: './2003_WAR AND ARCHITECTURE  Three Principles | LEBBEUS WOODS.pdf' already exists
find: ‘./2014_ Between Tradition and Modernity:2f Determining Spatial Systems ofPrivacy in the Domestic Architecture of Contemporary IraqAl.pdf’: Datei oder Verzeichnis nicht gefunden
'2003_WAR AND ARCHITECTURE:2f Three Principles | LEBBEUS WOODS.pdf' not renamed: '2003_WAR AND ARCHITECTURE  Three Principles | LEBBEUS WOODS.pdf' already exists
'2012_Architecture and War:2f From Baghdad to Kabul – Les carnets de l’Ifpo.pdf' not renamed: '2012_Architecture and War  From Baghdad to Kabul – Les carnets de l’Ifpo.pdf' already exists
'2014_ Between Tradition and Modernity:2f Determining Spatial Systems ofPrivacy in the Domestic Architecture of Contemporary IraqAl.pdf' not renamed: '2014_ Between Tradition and Modernity  Determining Spatial Systems ofPrivacy in the Domestic Architecture of Contemporary IraqAl.pdf' already exists
'./2014_ Between Tradition and Modernity:2f Determining Spatial Systems ofPrivacy in the Domestic Architecture of Contemporary IraqAl.pdf' not renamed: './2014_ Between Tradition and Modernity  Determining Spatial Systems ofPrivacy in the Domestic Architecture of Contemporary IraqAl.pdf' already exists
find: ‘./2012_Architecture and War:2f From Baghdad to Kabul – Les carnets de l\’Ifpo.pdf’: Datei oder Verzeichnis nicht gefunden
'2003_WAR AND ARCHITECTURE:2f Three Principles | LEBBEUS WOODS.pdf' not renamed: '2003_WAR AND ARCHITECTURE  Three Principles | LEBBEUS WOODS.pdf' already exists
'2012_Architecture and War:2f From Baghdad to Kabul – Les carnets de l’Ifpo.pdf' not renamed: '2012_Architecture and War  From Baghdad to Kabul – Les carnets de l’Ifpo.pdf' already exists
'2014_ Between Tradition and Modernity:2f Determining Spatial Systems ofPrivacy in the Domestic Architecture of Contemporary IraqAl.pdf' not renamed: '2014_ Between Tradition and Modernity  Determining Spatial Systems ofPrivacy in the Domestic Architecture of Contemporary IraqAl.pdf' already exists
'./2012_Architecture and War:2f From Baghdad to Kabul – Les carnets de l’Ifpo.pdf' not renamed: './2012_Architecture and War  From Baghdad to Kabul – Les carnets de l’Ifpo.pdf' already exists
Zuletzt geändert von pcace am 20.03.2021 17:49:51, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 6556
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Suchen/ Ersetzen in Dateinamen?

Beitrag von Meillo » 20.03.2021 17:44:33

Idee: Vielleicht ist ein Windows-Dateisystem im Einsatz oder die Backup-Software garantiert Restores auf Windows-Dateisysteme. Dort duerfen Dateinamen keine Doppelpunkte enthalten.
Use ed(1) once in a while!

pcace
Beiträge: 204
Registriert: 28.08.2011 01:08:55

Re: Suchen/ Ersetzen in Dateinamen?

Beitrag von pcace » 20.03.2021 17:51:16

Hi,

auf dem Qnap NAS und auf der Fritzbox laufen *nixe soweit ich weis. Auf dem Qnap hab ich auch eine mehr oder weniger komplette shell mit ssh zugang...
Windows Systeme gibts hier im Haushalt keine.

Vielleicht hat ja noch wer zu dem EDIT oben eine Idee?

Gruß und Dank!

schwedenmann
Beiträge: 4954
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Suchen/ Ersetzen in Dateinamen?

Beitrag von schwedenmann » 20.03.2021 17:59:21

Hallo


Ich habe hier eine Fritzbox an der eine Festplatte hängt auf der 4-5TB Liegen.
Windows Systeme gibts hier im Haushalt keine.
welches dateisystem hat denn die angeschlossenen Platte und wie wird die von der fritte gesehen ? fritz-NAS, oder ftp oder auch smb ?

mfg
schwedenmann

Benutzeravatar
hikaru
Moderator
Beiträge: 11524
Registriert: 09.04.2008 12:48:59

Re: Suchen/ Ersetzen in Dateinamen?

Beitrag von hikaru » 20.03.2021 18:02:05

pcace hat geschrieben: ↑ zum Beitrag ↑
20.03.2021 17:35:32
PS.: ich hab mal in einem testverzeichnis das hier probiert:
find . -name '*:2f*' -exec rename -v 's/:2f/ /' * {} \;
allerdings macht find das jetzt 3 mal hintereinander... was ist da falsch?

Code: Alles auswählen

find . -name '*:2f*' -exec rename -v 's/:2f/ /' * {} \;
Den Stern als Wildcard aus meinem Beispiel brauchst du in find -exec nicht. Die Rolle übernehmen hier die geschweiften Klammern:

Code: Alles auswählen

find . -name '*:2f*' -exec rename -v 's/:2f/ /' {} \;
Warum das Verhalten mit Stern so ist wie von dir beobachtet weiß ich gerade nicht. Ich bin aber im Moment auch etwas zu faul zum Nachdenken.

dakuan
Beiträge: 55
Registriert: 28.04.2011 22:09:39

Re: Suchen/ Ersetzen in Dateinamen?

Beitrag von dakuan » 20.03.2021 19:25:09

Meine bisherige Beobachtung ist, dass die NAS von QNAP alles verarbeiten, was bei Linux erlaubt ist. Ich habe da auch Testdateien mit Smilies (U+263A) im Dateinamen oder so etwas hier:
Some Swingin' Fingerpickin' Ragtime Guitar!-7Lu9EfIyatQ.mp4
Die Bash freut sich ...

In der gezeigten Warnung würde sich ein "ß" gut machen (Unicode: 0x00df). Da sehe ich in der Codierung eine kleine Übereinstimmung.

pcace
Beiträge: 204
Registriert: 28.08.2011 01:08:55

Re: Suchen/ Ersetzen in Dateinamen?

Beitrag von pcace » 21.03.2021 10:37:46

hikaru hat geschrieben: ↑ zum Beitrag ↑
20.03.2021 18:02:05
pcace hat geschrieben: ↑ zum Beitrag ↑
20.03.2021 17:35:32
PS.: ich hab mal in einem testverzeichnis das hier probiert:
find . -name '*:2f*' -exec rename -v 's/:2f/ /' * {} \;
allerdings macht find das jetzt 3 mal hintereinander... was ist da falsch?

Code: Alles auswählen

find . -name '*:2f*' -exec rename -v 's/:2f/ /' * {} \;
Den Stern als Wildcard aus meinem Beispiel brauchst du in find -exec nicht. Die Rolle übernehmen hier die geschweiften Klammern:

Code: Alles auswählen

find . -name '*:2f*' -exec rename -v 's/:2f/ /' {} \;
Warum das Verhalten mit Stern so ist wie von dir beobachtet weiß ich gerade nicht. Ich bin aber im Moment auch etwas zu faul zum Nachdenken.
Hi, das Sternchen war es! Jetzt benimmt sich die Zeile wie gewünschtt. (bis auf ein ein einziges File was 2x :2f im namen hatte.. da wurde nur eins ersetzt ;) )
Das Problem selbst ist im Grunde ja noch nicht gelöst (Auch wenn jetzt tatsächlich die Daten kopiert werden...)
schwedenmann hat geschrieben: ↑ zum Beitrag ↑
20.03.2021 17:59:21
Hallo


Ich habe hier eine Fritzbox an der eine Festplatte hängt auf der 4-5TB Liegen.
Windows Systeme gibts hier im Haushalt keine.
welches dateisystem hat denn die angeschlossenen Platte und wie wird die von der fritte gesehen ? fritz-NAS, oder ftp oder auch smb ?

mfg
schwedenmann
Die Platte an der Fritzbox ist ein Ext4. Auf die Platte an der Fritzbox greife ich per FTP zu (ist einfach schneller als SMB) und Nas / Fritzboxplatte kommunizieren auch über FTP.

Gruß und Danke für die Hilfe!

Benutzeravatar
hikaru
Moderator
Beiträge: 11524
Registriert: 09.04.2008 12:48:59

Re: Suchen/ Ersetzen in Dateinamen?

Beitrag von hikaru » 21.03.2021 11:35:37

pcace hat geschrieben: ↑ zum Beitrag ↑
21.03.2021 10:37:46
Hi, das Sternchen war es! Jetzt benimmt sich die Zeile wie gewünschtt. (bis auf ein ein einziges File was 2x :2f im namen hatte.. da wurde nur eins ersetzt ;) )
Dafür kannst du das Regex-Pattern in rename anpassen:

Code: Alles auswählen

's/:2f/ /g'
ersetzt alle Vorkommen von ':2f' im Dateinamen.

Antworten