Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

  • Autor

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

  • Autor

Tip Dazu. Keine Leerzeichen verwenden. Ersetze z.B. durch _ (Unterstrich) sonst hast du das Problem das deine Pfade immer in Anführungszeichen stehen müssen.

danke für den Tipp, werde ich auf jeden mit aufnehmen.

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

  • Autor

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

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

  • Autor

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 :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.