Alias - Ziel mit Terminal finden

Diskutiere mit über: Alias - Ziel mit Terminal finden im Mac OS X Forum

  1. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Hallo zusammen,

    gibt es eine Möglichkeit das Ziel eines Alias auf der Kommandozeile irgendwie auszulesen ?

    Mit GetFileInfo kann man zwar erkennen, ob eine Datei ein Macintosh Alias ist, aber ich habe noch keine Möglichkeit gefunden, wie man herausfinden kann, wo das original liegt.

    Falls es mit dem Terminal nicht geht: geht es mit Apple Script (oder besser mit "osascript") ?
     
  2. Korgan74

    Korgan74 MacUser Mitglied

    Beiträge:
    1.385
    Zustimmungen:
    5
    Registriert seit:
    28.02.2004
    Hallo Maceis,

    soweit ich mich erinnern kann, verwendet OS X im Gegensatz zu Windows nicht den konkreten Pfad, da so ein Alias ja nur solange funktionieren würde, bis die Datei, auf die sich das Alias bezieht, verschoben wird (Windows-User kennen das ja zur genüge, dass Verknüpfungen nicht mehr funktionieren, weil die Datei verschoben/umbenannt wurde).

    Deshalb wird das beim Mac OS X irgendwie (und hier hört mein Halbwissen auch auf), über ne direkte Referenz zur Datei gemacht. Das ist dann unabhängig vom tatsächlichen Pfad der Datei und das Alias funktioniert auch, wenn die Datei umbenannt/gelöscht wird. Deshalb vermute ich, kannst Du Dir bei einem Alias auch nicht den Pfad der verknüpften Datei anzeigen lassen, da dem Alias der Pfad wurscht ist.

    Aber vielleicht irre ich mich da auch. ;)
     
  3. admartinator

    admartinator MacUser Mitglied

    Beiträge:
    15.294
    Zustimmungen:
    290
    Registriert seit:
    09.09.2003
    Sitze gerade nicht am Mac, kann es daher nicht testen:

    Was zeigt ein

    ls -la

    an, wenn du es zum Beispiel im Desktop-Pfad anwendest und auf deinem Schreibtisch ein Alias liegt?

    Theoretisch müsste doch etwas in der Art auftauchen

    Datei -> /Pfad/Originaldatei

    ad
     
  4. Korgan74

    Korgan74 MacUser Mitglied

    Beiträge:
    1.385
    Zustimmungen:
    5
    Registriert seit:
    28.02.2004
    ctrl + Mausklick auf das Alias. Dann im Kontextmenü "Information" auswählen. Und dort wird Dir dann angezeigt, wo das Original liegt. Habe ich selber gerade bemerkt. Man lernt eben nie aus. :D
     
  5. sgmelin

    sgmelin MacUser Mitglied

    Beiträge:
    3.714
    Zustimmungen:
    40
    Registriert seit:
    16.05.2004
    Ein Alias wird im Terminal nicht als Link erkannt, da er auf einer anderen Struktur aufbaut als ein "normaler" Unix Link.
    In Apples Filestruktur bekommt jede Datei eine Nummer und wird von Mac OS auch als Nummer referenziert. Die Terminal Programme allerdings verwenden Unix typisch die Dateinamen als Referenz. Es sind also zwei völlig unterschiedliche Ansätze. Von daher bin ich immer wieder verwundert, wie es Apple geschafft hat, zwei so unterschiedliche Dinge und einen Hut zu bringen. Deshalb siehst Du im Finder den typischen Verzeichnisbaum des Filesystems auch nicht. Also im Terminal wirst Du wahrscheinlich kein Glück haben...
     
  6. starbuxx

    starbuxx MacUser Mitglied

    Beiträge:
    1.442
    Zustimmungen:
    8
    Registriert seit:
    13.04.2003
    Hallo zusammen,

    mit AppleScript ist das ganz einfach (wie immer :) )
    Code:
    set myAlias to "VOLUMENAME:Users:username:Desktop:ALIASTEST:testAlias"
    
    tell application "Finder"
    	set myLocation to get original item of alias file myAlias
    end tell
    
    (ALIASTEST wird natuerlich zusammengeschrieben, k.a. wieso das auseinandergezogen wird)

    Ausgabe etwa:
    anstatt 'set myAlias to "VOLUMENAME:..." geht auch

    Code:
    set myAlias to file "testAlias" of folder "Desktop" of folder "Users" of  
    volume "bla" of application "Finder""
    (alles eine zeile)

    Ich habe leider auch keine Ahnung wo sich OS X die Referenzen vom Alias zur Datei merkt, ich hatte erst Finder.plist im Verdacht, scheine mich aber zu täuschen, auch wenn da eine Menge von Aliases drinsteht.

    Habe noch so ein bischen 'NAVServices' und 'HIToolbox' im Verdacht, weiss es aber nicht. Müsste eigentlich (wenn in Dateiform) dann auf Userebene zu finden sein.

    Vielleicht hilft es in entsprechenden Caches / Plists ein bischen nach der INode nummer der Referenzdatei zu greppen.


    gruesse,
    sbx
     
  7. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    hallo zusammen,
    @ starbuxx,

    vielen Dank für Deine Tips.
    Das klingt schon mal sehr vielversprechend.
    Jetzt muss ich versuchen das ganze in ein Shellskript zu packen.
    Mal sehen, ob mir das gelingt.

    Wo die Alias Informationen hinterlegt sind ist mir auch ein Rätsel.
    Ich hab mal gelesen, das nicht nur die Inode Nummer gespeichert wird (wenn überhaupt) sondern eine Reihe von Metainformationen, die weit über die Informationen hinausgehen, die in einem Hardlink gespeichert sind.
    Muss ja auch so sein, bei dem was Aliasse alles können.

    @ ad:
    nein, so sieht es bei einem symlink aus; ein Mac Alias ist aber etwas völlig anderes und weit leistungsfähiger als ein symlink (der ja nur auf die Pfadangabe aufbaut)
    Ein Alias findet zB in der Regel die Zieldatei auch noch, nachdem sie verschoben und/oder umbenannt wurde
    [edit]....
     
    Zuletzt bearbeitet: 25.06.2004
  8. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Vielen Dank für Deine Mühe.

    Auch Unix arbeitet mit Inodes (so heissen die Nummern) und zwar schon lange, bevor es den ersten Mac überhaupt gab. Mit hardlinks kann man auch im Terminal ein und derselbe Datei unterschiedliche Namen geben; das hat aber nichts mit Macintosh Aliassen zu tun.
    Den kompletten Verzeichnisbaum sieht man im Finder nicht, weil Apple den bewusst vor den usern versteckt hat.
    Das lässt sich durch Änderung der Datei/.hidden aber leicht ändern.
    All diese Dinge helfen mir aber leider bei der Lösung des Problems nicht wirklich weiter.

    @Korgan

    auch Dir vielen Dank.
    Das wusste ich aber bereits.
    Mir geht es aber darum, in einem Skript die Zieldatei eines Alias zu finden.
    P.S. Wenn eine Ziel gelöscht wird, funktioniert der Alias natürlich nicht mehr.
     
  9. sgmelin

    sgmelin MacUser Mitglied

    Beiträge:
    3.714
    Zustimmungen:
    40
    Registriert seit:
    16.05.2004
    Inodes und die Filenummern in MacOS sind was komplett verschiedenes. Ein Inode ist ein 32 kB grosser Block im Filesystem, welcher entweder Daten, Adressen von weiteren Inodes oder beides haben kann. Das ist ein grosses Problem in Original Unix Filesystemen. Denn wenn man viele kleine Dateien hat, dann hat man nicht genug Inodes um alle Files zu adressieren, und die Platte wird als voll gekennzeichnet, obwohl vom freien Platz her noch genug Platz da ist. Entscheidet man sich bei der Formatierung der Platte allerdings für mehr Inodes, verschenkt man u.U. Platz für Inodes, der eigentlicht besser für Nutzdaten zu gebrauchen wäre. Eine Zwickmühle ;)
    Die Nummern im HFS(+) bezeichnen eine File-ID. Diese Nummer wird auch nur einmal vergeben. Selbst wenn das File gelöscht wird, wird die Nummer nicht mehr vergeben. Wenn ein Inode als frei markiert wird, wird er wieder überschrieben.
     
  10. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Danke für die Info sgmelin,

    hab ich wieder mal was gelernt hier ;)
    Das mit den Inodes kenn ich schon, aber das mit den Mac File-ID´s ist mir neu.
     
Die Seite wird geladen...
Ähnliche Themen - Alias Ziel Terminal Forum Datum
Alias für Schnellzugriff erzeugen, funktioniert nicht mehr Mac OS X 24.10.2016
Programme Alias Folder ins Dock? Mac OS X 13.04.2016
Original im Alias Ordner ist verschwunden Mac OS X 11.02.2015
Shutdown per Alias Mac OS X 10.01.2015
Yosemite & Alias Pics....HILFE!1 Mac OS X 05.09.2014

Diese Seite empfehlen

Benutzerdefinierte Suche