Homepage
 

Hallo, Gast.
Suchen
Hint einsenden
Hint einsenden
Website Quick Links
 
Aktuelle OS X Hints
 
Neue Forumsbeiträge
 
Zurück  Automatisches Löschen von Dot-Dateien auf MS-DOS-Systemen
System
Ich benutze oftmals USB-Flash-Laufwerke auf meinem Mac. Diese Laufwerke sind mit einem MS-DOS Dateisystem formatiert. Gewöhnlich kopiere ich JPG- und MP3-Dateien darauf, um sie mit meinem DVD-Player wiederzugeben. Wenn ich das Laufwerk in den USB-Frontanschluss des DVD-Players stecke, kann ich alle darauf enthaltenen Dateien auf meinem Fernseher sehen. Das Problem ist nun, das es sich um einen sehr einfachen DVD-Player handelt und er daher alle Punkt-Dateien von Mac OS X wie .Trashes und .DS_Store in allen Ordner anzeigt.

Ich wollte nun Mac OS X davon abhalten, diese Dateien auf MS-DOS-Dateisystemen zu schreiben, fand aber leider keinen Weg, dies zu tun. Mein zweiter Gedanke war dann ein AppleScript zu schreiben, das immer dann ausgeführt wird, wenn der Auswurfbefehl gegeben wird und alle Punkt-Dateien vorher löscht. Leider habe ich auch hier keinen Weg gefunden. Also, als alter UNIX-Crack, entschied ich mich dazu, zurück auf diese unterste Ebene zu wechseln und ein Wrapper-Script für das Programm unmount zu schreiben, dass für die meisten Operationen für das Auswerfen (oder 'aushängen') eines Dateisystems verantwortlich ist.

Dies war für mich die optimale Lösung, sie eignet sich aber nicht für jeden. Dieser Tipp erläutert, wie man ein unmount Wrapper-Script installiert. Man sollte hierbei aber grösste Vorsicht walten lassen!. Sie benutzen für Ihre Arbeit das Terminal.app, arbeiten als Root-User und bearbeiten wichtige OS-Hilfsprogramme. Machen Sie hierbei einen Fehler, kann das immens viel Ärger bedeuten.

Um den Wrapper zu installieren, befolgen Sie folgende Schritte:

  • Starten Sie das Terminal.app.
  • An der Eingabeaufforderung im Terminal geben Sie folgenden Befehl ein, um Root-User zu werden:

    sudo -s

    Sie werden dazu aufgefordert, Ihr Passwort einzugeben. Sie müssen über Admin-Rechte verfügen, um dies zu tun.

  • Gehen Sie in das Verzeichnis /sbin und benennen Sie das original unmount-Werkzeug um. Benutzen Sie dazu folgendes Kommando:

    cd /sbin; mv umount umount-orig

  • Speichern Sie das folgende Script unter dem Namen unmount im Verzeichnis /sbin ab. Der beste Weg ist es, dass Script zu kopieren, es in einen Texteditor einzufügen und es unter unmount im Verzeichnis /sbin zu speichern
     #!/bin/sh --
    loggerTag='umount-wrapper'

    (
    if [ "$@" ]; then
    for i in "$@"; do
    echo $i
    done

    fstype=`diskutil info "$1" | sed 's/ //g' | grep '^Type:' | cut -d':' -f2`

    echo "fstype is ${fstype}"

    if [ "$fstype" = "msdos" ]; then
    echo cleaning msdos filesystem...
    find "$1" -depth -name '.[^.]*' -print -exec /bin/rm -fr {} \;
    else
    echo not msdos, skipping to umount...
    fi
    fi
    ) | logger -st $loggerTag

    /sbin/umount-orig "$@"

  • Nur um sichzustellen, das alles korrekt ist, setzen Sie die Zugriffsrechte und Eigentumsrechte folgendermaßen:

    chmod 555 /sbin/umount*;
    chown root:wheel /sbin/umount*


  • Fertig! Beenden Sie nun das Terminal.


Das Script überprüft nun das auszuhängende Dateisystem, ob es sich um ein MS-DOS-System handelt. Wenn dem so ist, durchsucht es alle Ordner des Dateisystems und löscht alle Dateien, die mit einem Punkt beginnen. (Natürlich werden '.' und '..' ignoriert.) Alle Ausgaben des Scripts werden im System-Protokoll gespeichert und können dort mit dem Console.app eingesehen werden. Das Protokoll enthält den Namen des ausgehangenen Dateisystems, dessen Typ und, falls Dateien gelöscht wurden, deren Namen. Nachdem das Überprüfen und Löschen beendet ist, wird das alte Unmont-orig Werkzeug aufgerufen, um das nun saubere Dateisystem auszuhängen.

Unnötig zu erwähnen, das Dot-Dateien (wie Ihre .bashrc-Datei) aus dem MS-DOS-System, ebenfalls gelöscht werden, wenn das System ausgehangen wird. Einige der Wege, dies zu verhindern, ist das "zippen" Ihrer Dot-Dateien oder das Anpassen des Scripts auf Ihre speziellen Bedürfnisse.

Meiner Meinng nach sollte Apple eine Option hinzufügen, die das Schreiben der Dot-Dateien auf MS-DOS-Dateisystemen verhindert und dies sollte als Voreinstellung aktiviert sein. Benutzer, die Dot-Dateien speichern wollen, können diese Option ja deaktivieren.

[crarko: Tipp nicht getestet. Bitte sein Sie vorsichtig mit diesen Manipulationen.

Anmerkung: Es wurde eine Korrektur des Scripts durch den Autor vorgenommen. Es wurde das -fr-Kommando der folgenden Zeile hinzugefügt:
find "$1" -depth -name '.[^.]*' -print -exec /bin/rm -fr {} \;]
Erstellt von lsloan am 12.02.2011 um 20:08 Uhr | Hits: 3242
Hint Optionen





 
top top