Linux: Link Frage



  • Hallo

    sagen wir ich habe im Ordner /home/Projects/Foo/ einen Link namens myWriter auf /home/Test/Writer.lnx. Wenn ich den Link jetzt ausfuehre und Writer.lnx eine Datei "data.txt" liest, wird dann /home/Test/data.txt gelesen oder /home/Projects/Foo/data.txt?


  • Mod

    Weder noch. Es wird ./data.txt gelesen. Und hättest du das nicht durch ausprobieren trivial selber rausfinden können?



  • Wie weder noch? ./data.txt hat ja auch irgend einen absoluten Pfad...



  • LinkDirectoryFrage schrieb:

    Wie weder noch? ./data.txt hat ja auch irgend einen absoluten Pfad...

    Ja, aber der hat nichts mit dem Link oder dem Pfad der ausführbaren Datei zu tun.

    edit: Außerdem wäre es gut "symbolischer Link" zu sagen, wenn du nicht "Hardlink" meinst.



  • Christoph schrieb:

    LinkDirectoryFrage schrieb:

    Wie weder noch? ./data.txt hat ja auch irgend einen absoluten Pfad...

    Ja, aber der hat nichts mit dem Link oder dem Pfad der ausführbaren Datei zu tun.

    Doch sicher. Ich will wissen, ob sich das Working Directory aendert, wenn einem Link gefolgt wird.



  • LinkDirectoryFrage schrieb:

    Christoph schrieb:

    LinkDirectoryFrage schrieb:

    Wie weder noch? ./data.txt hat ja auch irgend einen absoluten Pfad...

    Ja, aber der hat nichts mit dem Link oder dem Pfad der ausführbaren Datei zu tun.

    Doch sicher. Ich will wissen, ob sich das Working Directory aendert, wenn einem Link gefolgt wird.

    Wieso sollte sich das dabei ändern? 😕

    Aber natürlich kannst du eine Shell so konfigurieren, dass sie das working directory bei einem Link temporär ändert. Ist mehr Aufwand als ein kleines Flag zu setzen, aber ich seh keinen Grund, warum das nicht gehen sollte.

    Aber auch das betrifft natürlich nur den Fall, wenn du das Programm aus einer Shell heraus ausführt. "Programm ausführen" hat mit Shell erstmal nichts zu tun, deswegen ist deine Frage so seltsam.



  • Ich versteh nicht, was ihr an meiner Frage nicht versteht.

    Wenn ich im Ordner /foo einen LINK myLink habe, der auf /bar/a zeigt, dann koennte die Shell doch das Working directory umsetzen, bevor a aufgerufen wird. Wenn ich auf der Konsole jetzt /foo/myLink starte, wird ja a gestartet. Ist innerhalb von a jetzt das Working directory da wo der Link startete (/foo) oder da wo das executable wirklich liegt (/bar)??



  • LinkDirectoryFrage schrieb:

    Wenn ich im Ordner /foo einen LINK myLink habe, der auf /bar/a zeigt, dann koennte die Shell doch das Working directory umsetzen, bevor a aufgerufen wird.

    Ja, das könnte die Shell. In deinem ersten Posting hast du aber nur geschrieben, dass du "den Link startest", nicht, dass du das über eine Shell machst. Ja, dieser Unterschied ist hier entscheidend, um deine Frage beantworten zu können. 🙂

    Von welcher Shell redest du?

    Warum probierst du das nicht einfach aus?



  • Christoph schrieb:

    Von welcher Shell redest du?

    tcsh. Glaube aber nicht, dass das eine Rolle spielt. Das werden die Shells wohl eh alle gleich machen.

    Warum probierst du das nicht einfach aus?[/quote]
    Kann an meinem System nicht;/


  • Mod

    LinkDirectoryFrage schrieb:

    Wenn ich im Ordner /foo einen LINK myLink habe, der auf /bar/a zeigt, dann koennte die Shell doch das Working directory umsetzen, bevor a aufgerufen wird. Wenn ich auf der Konsole jetzt /foo/myLink starte, wird ja a gestartet. Ist innerhalb von a jetzt das Working directory da wo der Link startete (/foo) oder da wo das executable wirklich liegt (/bar)??

    Immer noch: Weder noch! Es bleibt, wie immer, ".". Auch auf einer Shell finde ich deine Frage äußerst merkwürdig. Wenn du vi XYZ machst, dann wird doch auch nicht /usr/bin/XYZ (oder wo auch immer vi liegt) geöffnet, sondern ./XYZ (wobei . natürlich /usr/bin/ sein kann).



  • Gibts hier keinen mit Ahnung, der diese einfache Frage beantworten kann, ohne staendig nervige Gegenfrage zu stellen oder Korinthen kackt?


  • Mod

    LinkDirectoryFrage schrieb:

    Gibts hier keinen mit Ahnung, der diese einfache Frage beantworten kann, ohne staendig nervige Gegenfrage zu stellen oder Korinthen kackt?

    Wenn du zu blöd bist, eine korrekte Antwort zu verstehen (die richtige Antwort hattest du nach 5 Minuten), dann kann man dir eben nicht helfen. Und spätestens jetzt, wird es auch niemand mehr versuchen.



  • SeppJ schrieb:

    LinkDirectoryFrage schrieb:

    Gibts hier keinen mit Ahnung, der diese einfache Frage beantworten kann, ohne staendig nervige Gegenfrage zu stellen oder Korinthen kackt?

    Wenn du zu blöd bist, eine korrekte Antwort zu verstehen (die richtige Antwort hattest du nach 5 Minuten), dann kann man dir eben nicht helfen. Und spätestens jetzt, wird es auch niemand mehr versuchen.

    Naja, von Trotteln wie dir, die immer die selbe nichtsbringende Korinthenkacker Antwort bringen, habe ich es auch noch nie erwartet.



  • Genug Stunk. Das macht hier tatsächlich einen gewissen Unterschied für die Fragebeantwortung, auch wenn dir das vielleicht nicht klar ist.


Anmelden zum Antworten