Dateien mit Schmutzzeichen umbenennen ...
Hallo Zusammen, dank Eurer Hilfe habe ich jetzt endlich alle Verzeichniss- und Dateinamen korrigieren können, leider stehe ich aber nun vor dem nächsten Problem. Einige der Dateien enthalten ein ? bzw. * (kommt von OSX). Wenn ich nun versuche die Datei "Hallo?das ist ein Text" umzubennen, kann ich das von der Kommandozeile mit mv "Hallo"?"das ist ein Text" "Hallo das ist ein Text" machen, im Script funktioniert das leider nicht mehr (den Namen habe ich durch sed aufbereitet), er sagt es gibt eine solche Datei nicht, es sieht so aus als würde er das ? als echten Text interpretieren. Kann mir jemand sagen wo hier der Unterschied zwischen der Kommandozeile und dem Script ist? Danke Daniel
Hallo, Am Mittwoch, 13. April 2005 09:24 schrieb Daniel Bauer:
Hallo Zusammen,
dank Eurer Hilfe habe ich jetzt endlich alle Verzeichniss- und Dateinamen korrigieren können, leider stehe ich aber nun vor dem nächsten Problem.
Einige der Dateien enthalten ein ? bzw. * (kommt von OSX). Wenn ich nun versuche die Datei "Hallo?das ist ein Text" umzubennen, kann ich das von der Kommandozeile mit
mv "Hallo"?"das ist ein Text" "Hallo das ist ein Text"
versuch mal: mv "Hallo?das ist ein Text" "Hallo das ist ein Text" oder mv Hallo\?das\ ist\ ein\ Text "Hallo das ist ein Text" Allerdings sollte man generell in Dateinamen auf Sonderzeichen, Umlaute und auch " " verzichten, das macht nur Ärger.
machen, im Script funktioniert das leider nicht mehr (den Namen habe ich durch sed aufbereitet), er sagt es gibt eine solche Datei nicht, es sieht so aus als würde er das ? als echten Text interpretieren.
Kann mir jemand sagen wo hier der Unterschied zwischen der Kommandozeile und dem Script ist?
Danke Daniel
-- +--[ Mirko Richter (RHCE) ]------------------------+ | Networks & Communicationsystems | | Ernst-Thaelmann-Str. 5, D-06774 Soellichau | | E-MAIL: mrichter@nacmr.de | | Tel. +49/(0)34243/3369-50 \\\\ | | Fax. +49/(0)34243/3369-22/-28 (O O) | +-----------------------------------oOOo-(_)-oOOo--+ Meine Auktionen bei hood.de: http://www.hood.de/auktionen.cfm?accountID=474535
On Wednesday, April 13, 2005 10:08 AM, Mirko Richter wrote:
Hallo,
Am Mittwoch, 13. April 2005 09:24 schrieb Daniel Bauer:
Hallo Zusammen,
dank Eurer Hilfe habe ich jetzt endlich alle Verzeichniss- und Dateinamen korrigieren können, leider stehe ich aber nun vor dem nächsten Problem.
Einige der Dateien enthalten ein ? bzw. * (kommt von OSX). Wenn ich nun versuche die Datei "Hallo?das ist ein Text" umzubennen, kann ich das von der Kommandozeile mit
mv "Hallo"?"das ist ein Text" "Hallo das ist ein Text"
versuch mal:
mv "Hallo?das ist ein Text" "Hallo das ist ein Text"
das funktioniert weder in der Shell noch im Script ...
oder
mv Hallo\?das\ ist\ ein\ Text "Hallo das ist ein Text"
leider auch nix :(
Allerdings sollte man generell in Dateinamen auf Sonderzeichen, Umlaute und auch " " verzichten, das macht nur Ärger.
die Platte ist nicht von mir, sondern von meiner Freundin, die jetzt Ihre Daten von Ihrer OSX Platte auf ne Linux Partition verlagern will, denn sie hat keinen Mac mehr ...
machen, im Script funktioniert das leider nicht mehr (den Namen habe ich durch sed aufbereitet), er sagt es gibt eine solche Datei nicht, es sieht so aus als würde er das ? als echten Text interpretieren.
Kann mir jemand sagen wo hier der Unterschied zwischen der Kommandozeile und dem Script ist?
Hallo, Am Mittwoch, 13. April 2005 15:06 schrieb Daniel Bauer:
On Wednesday, April 13, 2005 10:08 AM, Mirko Richter wrote:
Hallo,
Am Mittwoch, 13. April 2005 09:24 schrieb Daniel Bauer:
Hallo Zusammen,
dank Eurer Hilfe habe ich jetzt endlich alle Verzeichniss- und Dateinamen korrigieren können, leider stehe ich aber nun vor dem nächsten Problem.
Einige der Dateien enthalten ein ? bzw. * (kommt von OSX). Wenn ich nun versuche die Datei "Hallo?das ist ein Text" umzubennen, kann ich das von der Kommandozeile mit
mv "Hallo"?"das ist ein Text" "Hallo das ist ein Text"
versuch mal:
mv "Hallo?das ist ein Text" "Hallo das ist ein Text"
das funktioniert weder in der Shell noch im Script ...
oder
mv Hallo\?das\ ist\ ein\ Text "Hallo das ist ein Text"
leider auch nix :(
hmm... bei mir funktionierts //schnippel mrichter@mriko:~/test/tester> ls Hallo?das ist ein Text mrichter@mriko:~/test/tester> mv Hallo\?das\ ist\ ein\ Text "Hallo das ist ein Text" mrichter@mriko:~/test/tester> ls -al insgesamt 12 drwx------ 2 mrichter users 4096 Apr 13 15:23 . drwx------ 101 mrichter users 8192 Apr 13 10:12 .. -rw------- 1 mrichter users 0 Apr 13 10:13 Hallo das ist ein Text mrichter@mriko:~/test/tester> schnappel// versuchst Du das direkt auf der Mac-Platte? evtl. liegt's ja dadran. was für eine Fehlermeldung bringt er denn? MfG Mirko -- +--[ Mirko Richter (RHCE) ]------------------------+ | Networks & Communicationsystems | | Ernst-Thaelmann-Str. 5, D-06774 Soellichau | | E-MAIL: mrichter BEI nacmr.de | | Tel. +49/(0)34243/3369-50 \\\\ | | Fax. +49/(0)34243/3369-22/-28 (O O) | +-----------------------------------oOOo-(_)-oOOo--+ ps: mails an lists@nacmr.de landen im EDV-Müll ;) Meine Auktionen bei hood.de: http://www.hood.de/auktionen.cfm?accountID=474535
On Wednesday, April 13, 2005 3:27 PM, Mirko Richter wrote:
Hallo,
Am Mittwoch, 13. April 2005 15:06 schrieb Daniel Bauer:
On Wednesday, April 13, 2005 10:08 AM, Mirko Richter wrote:
Hallo,
Am Mittwoch, 13. April 2005 09:24 schrieb Daniel Bauer:
Hallo Zusammen,
dank Eurer Hilfe habe ich jetzt endlich alle Verzeichniss- und Dateinamen korrigieren können, leider stehe ich aber nun vor dem nächsten Problem.
Einige der Dateien enthalten ein ? bzw. * (kommt von OSX). Wenn ich nun versuche die Datei "Hallo?das ist ein Text" umzubennen, kann ich das von der Kommandozeile mit
mv "Hallo"?"das ist ein Text" "Hallo das ist ein Text"
versuch mal:
mv "Hallo?das ist ein Text" "Hallo das ist ein Text"
das funktioniert weder in der Shell noch im Script ...
oder
mv Hallo\?das\ ist\ ein\ Text "Hallo das ist ein Text"
leider auch nix
hmm...
bei mir funktionierts
//schnippel mrichter@mriko:~/test/tester> ls Hallo?das ist ein Text mrichter@mriko:~/test/tester> mv Hallo\?das\ ist\ ein\ Text "Hallo das ist ein Text" mrichter@mriko:~/test/tester> ls -al insgesamt 12 drwx------ 2 mrichter users 4096 Apr 13 15:23 . drwx------ 101 mrichter users 8192 Apr 13 10:12 .. -rw------- 1 mrichter users 0 Apr 13 10:13 Hallo das ist ein Text mrichter@mriko:~/test/tester> schnappel//
versuchst Du das direkt auf der Mac-Platte?
evtl. liegt's ja dadran.
was für eine Fehlermeldung bringt er denn?
das er das File nicht findet Anscheinend ist es wohl kein wirkliches Fragezeichen ... Bis denne Daniel
Hallo Daniel, hallo Leute, Am Mittwoch, 13. April 2005 09:24 schrieb Daniel Bauer: [kranke Dateinamen]
Einige der Dateien enthalten ein ? bzw. * (kommt von OSX). Wenn ich nun versuche die Datei "Hallo?das ist ein Text" umzubennen, kann ich das von der Kommandozeile mit
mv "Hallo"?"das ist ein Text" "Hallo das ist ein Text"
Damit benennst Du die Datei "Hallo<beliebiges Zeichen>das ist ein Text" um. Bist Du sicher, dass da wirklich ein Fragezeichen im Dateinamen steht? Guck Dir mal ein Verzeichnislisting mit ls -b an.
machen, im Script funktioniert das leider nicht mehr (den Namen habe ich durch sed aufbereitet), er sagt es gibt eine solche Datei nicht, es sieht so aus als würde er das ? als echten Text interpretieren.
Kommt auf das Script an ;-)
Kann mir jemand sagen wo hier der Unterschied zwischen der Kommandozeile und dem Script ist?
Scheinbar hast Du das Script anders programmiert als das, was Du in der Kommandozeile eingibst. Ohne Kenntnis des Scripts lässt sich dazu aber nix sagen. Gruß Christian Boltz --
8.1 ist nicht 9.0 Also in der Quersumme schon ;-) [> Henne Vogelsang und Manfred Tremmel in suse-linux]
On Thursday, April 14, 2005 12:17 AM, Christian Boltz wrote:
Hallo Daniel, hallo Leute,
Am Mittwoch, 13. April 2005 09:24 schrieb Daniel Bauer: [kranke Dateinamen]
leider sehr krank
Einige der Dateien enthalten ein ? bzw. * (kommt von OSX). Wenn ich nun versuche die Datei "Hallo?das ist ein Text" umzubennen, kann ich das von der Kommandozeile mit
mv "Hallo"?"das ist ein Text" "Hallo das ist ein Text"
Damit benennst Du die Datei "Hallo<beliebiges Zeichen>das ist ein Text" um.
Bist Du sicher, dass da wirklich ein Fragezeichen im Dateinamen steht? Guck Dir mal ein Verzeichnislisting mit ls -b an.
Der betreffende Teil wird mir mit ls -b so angezeigt: \ I:2002
machen, im Script funktioniert das leider nicht mehr (den Namen habe ich durch sed aufbereitet), er sagt es gibt eine solche Datei nicht, es sieht so aus als würde er das ? als echten Text interpretieren.
Kommt auf das Script an
nun ich suche mit find alle Dateien und übergebe sie an dieses Script [...] alt=$(echo "$1" | sed -e 's/[*?:]/\\?g' | sed -e 's /\\ /g') neu=$(echo "$1" | cut -b 3-2048 | sed -e 's/[^a-zA-Z0-9.\/_-]//g') if ! mv "$alt" "/remount/hdd2/$neu" then echo "$1" >> /script/f-fehler.txt fi [...]
Kann mir jemand sagen wo hier der Unterschied zwischen der Kommandozeile und dem Script ist?
Scheinbar hast Du das Script anders programmiert als das, was Du in der Kommandozeile eingibst. Ohne Kenntnis des Scripts lässt sich dazu aber nix sagen.
s.o. Danke Daniel
Hallo Christian, On Thursday, April 14, 2005 12:17 AM, Christian Boltz wrote:
Hallo Daniel, hallo Leute,
Am Mittwoch, 13. April 2005 09:24 schrieb Daniel Bauer: [kranke Dateinamen]
Bist Du sicher, dass da wirklich ein Fragezeichen im Dateinamen steht? Guck Dir mal ein Verzeichnislisting mit ls -b an.
kann ich dieses Format das ls -b ausgibt auch von find bekommen, damit ich die Dateinamen korrigieren kann? Danke Daniel
Hallo Daniel, hallo Leute, Am Dienstag, 19. April 2005 09:30 schrieb Daniel Bauer:
On Thursday, April 14, 2005 12:17 AM, Christian Boltz wrote:
Am Mittwoch, 13. April 2005 09:24 schrieb Daniel Bauer: [kranke Dateinamen]
Bist Du sicher, dass da wirklich ein Fragezeichen im Dateinamen steht? Guck Dir mal ein Verzeichnislisting mit ls -b an.
kann ich dieses Format das ls -b ausgibt auch von find bekommen, damit ich die Dateinamen korrigieren kann?
AFAIK nicht, aber mit find -exec renameit müsste es funktionieren. renameit ist folgendes kleine Script: (Ungetestet!) altername="$1" neuername="`echo \"$altername\" | sed 's/[^a-z0-9]/_/g'`" mv -i "$altername" "$neuername" Besonders wichtig ist das Quoting sämtlicher Variablen! Und "mv -i" verhindert, dass Dateien bei Gleichheit des neuen Namens überschrieben werden. Gruß Christian Boltz --
warum plonkt ihr nicht leise? Weil man gelegentlich eine tote Krähe beim Kornfeld aufhängen muß, damit andere Krähen begreifen, daß der lange schwarze Stock nicht nur Bumm macht, sondern auch Aua. [> Hans-Robert Wagner und Ratti in suse-linux]
On Wednesday, April 20, 2005 7:46 PM, Christian Boltz wrote:
Hallo Daniel, hallo Leute,
Am Dienstag, 19. April 2005 09:30 schrieb Daniel Bauer:
On Thursday, April 14, 2005 12:17 AM, Christian Boltz wrote:
Am Mittwoch, 13. April 2005 09:24 schrieb Daniel Bauer: [kranke Dateinamen]
Bist Du sicher, dass da wirklich ein Fragezeichen im Dateinamen steht? Guck Dir mal ein Verzeichnislisting mit ls -b an.
kann ich dieses Format das ls -b ausgibt auch von find bekommen, damit ich die Dateinamen korrigieren kann?
AFAIK nicht, aber mit find -exec renameit müsste es funktionieren.
renameit ist folgendes kleine Script: (Ungetestet!) altername="$1" neuername="`echo \"$altername\" | sed 's/[^a-z0-9]/_/g'`" mv -i "$altername" "$neuername"
Besonders wichtig ist das Quoting sämtlicher Variablen! Und "mv -i" verhindert, dass Dateien bei Gleichheit des neuen Namens überschrieben werden.
Hallo Christian, danke an Dich und alle die mir bei dem Problem geholfen haben, leider hat es auch so nicht hingehauen, ich habe nun ein "Fehlerprotokoll" ausgeben lassen und die restl. Dateinamen mit der Hand korrigiert. In jedem Fall hoffe ich, das ich sobald keine Mac Platte mehr sehen muß ;) Gruß Daniel
participants (3)
-
Christian Boltz
-
Daniel Bauer
-
Mirko Richter