Jump to content
Melde dich an, um diesem Inhalt zu folgen  

Skript zum umbennen der Ordnernamen

Empfohlene Beiträge

Hallo Zusammen,

als Neuling in der Linuxumgebung habe ich folgendes Problem:

Wir sind gerade dabei unser Fileshare von einem Linux OS in ein Win OS umzuziehen. Jetzt meckert die Windowsumgebung, wenn im Ordnernamen Punkte vorkommen. Diese kommen aber fast in jedem Ordnernamen vor. 

Bsp. www.bla.de/bla_bl.de/bla.bla.com ... usw. 

Die Ordnernamen einzeln händisch umzubenennen wäre IT zu Fuß und so ziemlich aufwendig. 

Jetzt habe ich versucht ein Script zu schreiben, komme aber nicht wirklich weiter.

Mein Skript sieht wie folgt aus:

#!/bin/bash

for i in ` find . -type d -name "*.*"` # finde alle ordner die einen Punkt im Namen haben
do
   echo $i      # gebe ordnernamen aus 
   sed -e 's/'.'/''/g'  # und ersetze im Ordnernamen $i Punkt durch Leerzeichen
   # ich habe an dieser stelle auch diese Zeile versucht: ${i /.//}   - klappt aber auch nicht
   
 done

mein Ansatz ist: ich will die Ordnernamen in eine Stringvariable schreiben und diesen mittels der Variable umbennen, indem ich die Zeichen ersetze. Ich habe natürlich schon im Forum gesucht und natürlich auch schon gegoogelt, leider komme ich nicht weiter. 

Freue mich schon auf eure Hilfe. Besten Dank im Voraus.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi, 

danke carstenj.

ich habe es jetzt versucht wie du es vorgeschlagen hast.

sieht jetzt so aus

#!/bin/bash

for i in ` find . -type d -name "*.*"`
do
   echo $i  | sed -e 's/\./ /g'

done

aber irgendwie will es trotzdem nicht. die Punkte werden zwar ersetzt durch Leerzeichen und ausgegeben aber gespeichert wird das ganze nicht :/

bearbeitet von c-i-k-o

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi,

was genau soll denn passieren? Wenn du die Dateien tatsächlich umbenannt haben möchtest, musst du...

  • Zuerst die neuen Name generieren (hast du getan)
  • mit dem Kommando "mv" die alten Dateien umbennnen (aber das würde ich vorher intensiv testen, denn wenn du das im falschen Verzeichnis aufrufst und/oder die falschen Dateien erwischt, kann das böse enden)
  • TIPP: Rufe "find" mit dem entsprechenden Verzeichnis auf (als Beispiel /var/www/html/):

    find /var/www/html/ -type d -name "*.*"

     

Überhaupt würde ich davon abraten, einfach mal so Dateien umzubennen, es sei denn die werden ausschließlich von Windows benutzt (bzw. du weisst genau, dass das keine Auswirkungen auf das System hat!!!).

bearbeitet von carstenj

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

so jetzt habe ich das Restultat des sed-Kommandos in eine Variable geschrieben:

#!/bin/bash

for i in ` find . -type d -name "*.*"`
do
   new_dirname=$(echo "$i" | sed -e 's/\./_/g')
   mv $i $new_dirname
done

und kriege folgende Fehlermeldung:

mv: Insufficient arguments (1)
Usage: mv [-f] [-i] f1 f2
       mv [-f] [-i] f1 ... fn d1
       mv [-f] [-i] d1 d2
mv: cannot rename .... to .... : No such file or directory

 

bearbeitet von c-i-k-o

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi,

das Problem ist, dass du nun Dateien findest wie z.B.: ./.blah findest und dann nach _/_blah umbennen möchtest. Das geht aber nicht, weil es kein Verzeichnis namens _ gibt. Daher nochmal als Hinweis: Statt find . nimm find /verzeichnis/xyz.....

Aber nochmal: Überhaupt würde ich davon abraten, einfach mal so Dateien umzubennen, es sei denn die werden ausschließlich von Windows benutzt (bzw. du weisst genau, dass das keine Auswirkungen auf das System hat!!!). Und vorher ein Backup machen.

bearbeitet von carstenj

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi Carsten,

genau das ist mir gerade auch eingefallen, leider nachdem ich schon so lange gezweifelt habe :/

Es hat mit dem find /verzeichnis/xyz... geklappt. 

Danke für den Hinweis - ich muss sie abändern, weil das Windows-Share die Ordnernamen in der Form nicht akzeptiert. Die Dateien habe ich in diesem Fall nicht angefasst nur die Ordnernamen. Backup habe ich sicherheitshalber abgelegt. 

 

Besten Dank für deine Unterstützung :)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung