Yritän luoda joukon symbolisia linkkejä, mutta en voi selvittää miksi tämä toimii
ln -s /Users/niels/something/foo ~/bin/foo_link kun tämä
cd /Users/niels/something ln -s foo ~/bin/foo_link ei ole.
 Uskon, että sillä on jotain tekemistä sen kanssa, että foo_link linkitetään foo-kansioon /Users/niels/bin -kentässä /Users/niels/something 
Kysymys kuuluu, miten voin luoda symbolisen linkin, joka osoittaa absoluuttisen polun kirjoittamatta sitä itse?
Käytän viitteenä Mac OS X 10.9: tä ja Zsh: ää .
Vastaus
Helpoin tapa linkittää nykyiseen hakemistoon absoluuttisena polkuna kirjoittamatta koko polkujonoa olisi
ln -s "$(pwd)/foo" ~/bin/foo_link  target (ensimmäinen)-argumentti ln -s komento toimii suhteessa symbolisen linkin sijaintiin, ei nykyiseen hakemistoon. Se auttaa tietämään, että lähinnä luominen ed symlink (toinen argumentti) sisältää yksinkertaisesti ensimmäiselle argumentille antamasi  tekstin . 
Jos siis teet seuraavat toimet:
cd some_directory ln -s foo foo_link ja siirrä sitten linkki ympärille
mv foo_link ../some_other_directory ls -l ../some_other_directory  näet, että foo_link  yrittää  osoittaa foo hakemistoon, jossa se asuu. Tämä toimii myös symbolisten linkkien avulla, jotka osoittavat suhteellisia polkuja. Jos teet seuraavaa: 
ln -s ../foo yet_another_link  ja siirrä sitten yet_another_link toiseen hakemistoon ja tarkista, mihin se osoittaa, huomaat, että se osoittaa aina kohtaan ../foo. Tämä on tarkoitettua käyttäytymistä, koska monta kertaa symboliset linkit voivat olla osa hakemistorakennetta, joka voi sijaita eri absoluuttisilla poluilla. 
Kun luot linkin kirjoittamalla,
ln -s foo ~/bin/foo_link  foo_link pitää vain linkki osoitteeseen foo suhteessa sijaintiin. Kun $(pwd) asetetaan kohde-argumentin eteen, nimi lisää vain nykyisen työkansion ”s absoluuttinen polku, joten linkki luodaan absoluuttisella kohteella. 
Kommentit
Vastaa
 -r (--relative) -lippu saa tämän toimimaan: 
ln -sr foo ~/bin/foo_link kommentit
-  Varo, että -ron GNUism, eli muu kuin POSIX, joten se ei voinut ' toimia OP-tapauksessa vakio-OS X: näln-komento on BSD-pohjainen.
Vastaa
Jotkut tallennetaan kirjoittamalla voit tehdä
ln -s "$PWD"/foo ~/bin/foo_link kommentteja
-  @Freddy, se riippuu kuoresta. Kaloissa tai zsh: ssä se olisi OK.Bournen kaltaisissa kuorissa, joissa on bash ja joiden oletusarvo on $ IFS, SPC olisi todellakin ongelma, mutta myös TAB, NL ja kaikki huojuvat merkit (ainakin *,?ja[...]).
-  @St é phaneChazelas Kyllä, sinä ' on oikeassa ja kysymys on merkitty tunnisteella bash, joten se ' sa yleensä hyvä idea lainata sitä. Paha, minun olisi pitänyt olla tarkempi.
Vastaus
Entä:
 $ cd /Users/niels/something $ ln -s ./foo ~/bin/foo_link Kommentit
- Ei, ei ' tee temppua.
source_file(ensimmäinen) -argumentti on linkin kohta, johon linkki osoittaa, mikä on sanatarkasti komentoon kirjoittamasi.target_file(toinen) -argumentista tulee linkin nimi, ellei kirjoittamasi ole hakemisto, jolloin linkin nimi on sama kuinsource_file, mutta sijoitetaan hakemistoontarget_file.ln-sivun mukaantargeton ensimmäinen argumentti (jossa linkki osoittaa – ), kun taas toinen argumentti kutsutaan yksinkertaisesti nimellälink(sourceei mainita).targetja toisenlink( man7.org/ linux / man-pages / man1 / ln.1.html ). Mutta BSD: ssä (mukaan lukien OS X) ensimmäistä kutsutaansourceja toistatarget( freebsd.org/cgi/man.cgi?ln ). Melko hämmentävä.