ln nicht mit relativen Pfaden?

Dieses Thema im Forum "Mac OS X - Unix & Terminal" wurde erstellt von below, 23.11.2006.

  1. below

    below Thread Starter MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    MacUser seit:
    15.03.2004
    Hallo,
    muss ich ln -s immer einen absoluten Pfad geben?

    Wenn ich folgendes mache:

    cd /tmp
    mkdir foo
    mkdir faz
    cd faz
    ls -s ../foo ../bar

    Dann wird eine kaputte Aliasdatei, und kein Symlink erzeugt. Mit absoluten Pfaden geht es. Steht das irgendwo, hab ich was überlesen?

    Danke

    Alex
     
  2. dpr

    dpr MacUser Mitglied

    Beiträge:
    519
    Zustimmungen:
    0
    MacUser seit:
    04.04.2006
    Mein ln (Du meinst doch am Ende ln -s) erzeugt einen Symlink:

    Code:
    lrwxr-xr-x   1 dpr       wheel    6 Nov 23 13:01 bar -> ../foo
    
    Code:
    % alias ln
    % ident `which ln`
    /bin/ln:
         $FreeBSD: src/bin/ln/ln.c,v 1.29 2002/07/31 16:53:59 markm Exp $
    
    EDIT: ident `which /bin/ln` war natürlich Humbug.
     
    Zuletzt bearbeitet: 23.11.2006
  3. below

    below Thread Starter MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    MacUser seit:
    15.03.2004
    Oh, ja ich meinte natürlich ln -s
    Welches OS und welche Shell ist das? Könnte das ein Fehler in OS X sein?

    Alex
     
  4. Kruemel_ddorf

    Kruemel_ddorf MacUser Mitglied

    Beiträge:
    811
    Zustimmungen:
    2
    MacUser seit:
    17.02.2004

    ../bar ??? versuch dochmal ./bar
     
  5. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.822
    Zustimmungen:
    3.633
    MacUser seit:
    23.11.2004
    also die source mit relativen pfad anzugeben ist kein problem...
    aber warum das target?
    das macht doch überhaupt keinen sinn...
     
  6. dpr

    dpr MacUser Mitglied

    Beiträge:
    519
    Zustimmungen:
    0
    MacUser seit:
    04.04.2006
    Code:
    % sw_vers 
    ProductName:    Mac OS X
    ProductVersion: 10.4.8
    BuildVersion:   8L127
    
    Shell ist eine tcsh, die sollte aber auf ln keinen Einfluß haben. Ist Dein ln vielleicht ein shell-built-in?
     
  7. dpr

    dpr MacUser Mitglied

    Beiträge:
    519
    Zustimmungen:
    0
    MacUser seit:
    04.04.2006
    Das sehe ich nicht so. Zum einen geht es beim Beispiel wohl eher um eine möglichst einfache Demonstration des Problems, zum anderen sind auch ./foo und foo relativ. Und ln sollte symlinks erstellen, egal, ob hinten der Pfad absolut oder relativ ist.
     
  8. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Das Verhalten von 'ln' ist doch völlig logisch.

    Du sagst "Erzeuge im übergeordneten Verzeichnis einen Sysmlink der auf eine andere Datei in dem (vom Symlink aus gesehen) übergeordneten Verzeichnis liegt", erwartest aber, das der Symlink auf eine Datei zeigt, die im (vom Symlink aus gesehen) selben Verzeichnis liegt.
     
    Zuletzt bearbeitet: 24.11.2006
  9. below

    below Thread Starter MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    MacUser seit:
    15.03.2004
    Stimmt, wenn man drüber nachdenkt ...

    ln -s foo ../bar

    funktioniert dann auch :D

    P.S.: Inzwischen habe ich die fremden Makefiles aber so modifiziert, dass die Pfade jetzt alle da sind, wo sie hingehören :D

    Alex
     
  10. dpr

    dpr MacUser Mitglied

    Beiträge:
    519
    Zustimmungen:
    0
    MacUser seit:
    04.04.2006
    Ähm, sorry, jetzt kann ich nicht mehr folgen. Wurde nun ein Alias (also ein HFS-spezifisches File mit resource fork; denn davon war im ersten Beitrag die Rede) oder einfach nur ein broken symlink erzeugt? Letzteres wäre natürlich völlig korrekt.
     
Die Seite wird geladen...
Ähnliche Themen - relativen Pfaden
  1. admiral_kay
    Antworten:
    15
    Aufrufe:
    923
    admiral_kay
    02.10.2007