OS X, Sonderzeichen und SMB/CIFS-Shares

Flitsche

Neues Mitglied
Thread Starter
Mitglied seit
07.09.2007
Beiträge
21
Helau ihr,

ich hoffe, es gibt das Thema nicht schon irgendwo, die Suchfunktion hat mir nichts befriedigendes gebracht.

Folgendes Problem:

Ich habe hier einige Mac-User, die mehr oder weniger grosse Datenmengen (bis zu 70 GB) lokal auf der Platte haben und nicht auf unserem NAS und somit nicht im Backup. Das muss sich ändern (Forschungsdaten mit z.T. recht hohem Wert).

Unser NAS wird per CIFS bzw. SMB auf den Rechnern gemountet. Das Synchronisieren selber stellt nicht unbedingt ein Problem dar, ich hab hier einige Programme zum Testen und Vergleichen (Ibackup, SyncTwoFolders, Unison, Synk6, Synchronise X Pro).

Aber: Die Ç[]|{[}#ç&%£!/(%& Sonderzeichen und die Möglichkeit, am Ende des Dateinamens noch Leerzeichen einzufügen, bringen mich um.

Ich suche eine Anwendung, die möglichst komfortabel und schnell das umbenennen bzw. suchen von Sonderzeichen und ersetzen durch weniger kritische Zeichen ermöglicht. Ich hab mir mal "A better Finder - Rename" angeschaut, bin damit aber nicht glücklich geworden. Und da es sich zum Teil um Strukturen mit mehreren Millionen Dateien/Verzeichnissen handelt, ist manuelles umbenennen nicht möglich..

Wäre schön, wenn jemand da eine Programmempfehlung oder andere Lösungsvorschläge hätte..

Merci vielmal,

Flitsche
 

pseudogc

Mitglied
Mitglied seit
19.12.2005
Beiträge
704
geneigte Leser,

zum Beispiel mittels des tr-Kommandos:

tr -cd '\11\12\40-\176'

als Shellskript:

for f in *; do
g=`expr "xxx$f" : 'xxx\(.*\)' | tr -cd '\11\12\40-\176' | tr ' ' '_'`
mv "$f" "$g"
done

unter dem gewuenschten Namen abspeichern ("adiosdiacriticos"), als ausfuehrbar kennzeichnen, und dann einfach per

adiosdiacriticos

auf zum Beispiel in einem Dateiverzeichnis anwenden. Das Ganze laesst sich natuerlich noch bis zum gewuenschten Komfortabilitaetsgrad erweitern :D

cheers,

pseudogc

EDIT: da habe ich glatt die Leerzeichen uebersehen -> | tr ' ' '_'

Als Erklaerung: die erste tr-Sequenz ersetzt alle diakritischen Zeichen, das zweite tr-Kommando die Leerzeichen durch Unterstriche; durch weitere Pipes lassen sich dann auch noch die Sonderzeichen rauswerfen oder ersetzen.
 
Zuletzt bearbeitet:

quecksilber

Neues Mitglied
Mitglied seit
12.03.2007
Beiträge
35
pseudogc,
jau! Super Lösung, an tr hatte ich gar nicht gedacht. Problem ist nur mit der for-Schleife gehts ja nur im aktuellen Verzeichnis oder steigt das in Unterverzeichnisse runter? Meine Lösung bisher war mit find und rename, so à la:
Code:
find ./Documents/ -name "*\ *" -ok rename 's/\ /_/g' "{}" \;
Problem damit ist, dass man für jedes Zeichen eine extra Zeile braucht... alles in ein Skript backen (mit -exec statt -ok) müsste allerdings auch gehen.
Gruß
Quecksilber
 

pseudogc

Mitglied
Mitglied seit
19.12.2005
Beiträge
704
Problem damit ist, dass man für jedes Zeichen eine extra Zeile braucht... alles in ein Skript backen (mit -exec statt -ok) müsste allerdings auch gehen.
IMHO auf jeden Fall ein Skript - schon allein um sich das mehrfach rekursive Suchen zu ersparen. Wie wäre es denn mit so etwas wie:

for FILE in $(find . \! -name "*.*" -print $*)
do
die_gewünschte_kommandosequenz $FILE $FILE
done

damit stehen dann alle Dateien im aktuellen und allen darin enthaltenen Unterverzeichnissen mit komplettem Pfadnamen in $FILE.

cheers,

pseudogc
 

quecksilber

Neues Mitglied
Mitglied seit
12.03.2007
Beiträge
35
Hi pseudogc,
ja das müsste auch gehen. Ich probiers demnächst mal aus.
Merci
Quecksilber
 

Flitsche

Neues Mitglied
Thread Starter
Mitglied seit
07.09.2007
Beiträge
21
Hi,

erstmal danke für eure Vorschläge. Soweit, das ganze mit einem Perl-Skript zu machen, war ich auch schon. Ich hatte allerdings gehofft, etwas eleganteres für meine User zu finden.
Und ich wurde fündig:

A better Finder - Rename 7

Es gibt die Option "Convert to valid NTFS/SMB Filename", die sämtliche Schweinezeichen (\ / : * ? " < > |) sowie die Leerzeichen am Ende des Datein/Ordnernamens durch ein beliebiges Zeichen ersetzt..

\o/ Jubel, mein Tag ist gerettet..
 

oneOeight

Aktives Mitglied
Mitglied seit
23.11.2004
Beiträge
55.793
schau doch mal in die man-page von smb.conf
speziell der punkt "mangled map"...
 

Flitsche

Neues Mitglied
Thread Starter
Mitglied seit
07.09.2007
Beiträge
21
leider habe ich keinen einfluss auf die smb.conf. das NAS welches wir über cifs unter os x mounten wird nicht von uns administriert ;(

aber danke, für eine zukünftige inhouse lösung werd ich mir das mal näher ansehen ..
 

oneOeight

Aktives Mitglied
Mitglied seit
23.11.2004
Beiträge
55.793
du hast auch eine smb.conf auf den os x rechnern... ;)
da hast du ja wohl einfluss...
 

Flitsche

Neues Mitglied
Thread Starter
Mitglied seit
07.09.2007
Beiträge
21
argh, ja, es ist noch früh am morgen.. thx..

hab aber grad mit meinem chef drüber gesprochen. ist wohl in unserem umfeld nicht wirklich praktikabel, da man dann u.u. probleme mit verschieden konfigurierten OSsen bekommt. z.b. rsync->push auf server: OK, rsync push auf client: problem. werds im kleinen mal testen, mal sehen..
 
Oben