Otázka:
Vytvoření symbolického odkazu v / bin nefunguje
Michael
2015-03-08 06:59:58 UTC
view on stackexchange narkive permalink

Vyzkoušel jsem tři různé způsoby, jak vytvořit symbolický odkaz na Sublime Text na mém počítači Mac a po každém restartování terminálu mi stále říká, že příkaz nebyl nalezen. Používám Mac s Yosemite (OSX Yosemite, 10.10). Jak mohu vytvořit symbolický odkaz, abych mohl otevřít Sublime pomocí příkazu sub ?

Jeden

  ln -s 'Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl' / bin / sub  

Dva

  ln -s "Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl" / bin / sub  

Tři (bez uvozovek)

  ln -s Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl / bin / sub  
vytváří odkaz ve skutečnosti něco v / bin nazvaném sub? zkuste sudo?
Pokud používáte uvozovky, nechcete zpětné lomítko. Pokud nepoužíváte uvozovky, je nutné zpětné lomítko. Potřebujete také úvodní lomítko na `/ Applications / ...`, jak je uvedeno v odpovědi, a potřebujete oprávnění root, abyste mohli psát do `/ bin` (odtud` sudo`). Zbývající otázkou je, zda stačí spustit takový spustitelný soubor. Jste si jisti, že nechcete mít jako obsah souboru v souboru / / bin místo toho skript, který by něco jako otevřený / Applications / Sublime \ Text.app "?"
Dva odpovědi:
mockman
2015-03-08 07:27:41 UTC
view on stackexchange narkive permalink

Na začátku aplikace vám chybí znak „/“ a sudo , protože / bin je vlastněn root a můžete Ve skutečnosti do něj nepíšu jako normální uživatel. Jak ji aktuálně máte, bude fungovat, pouze pokud je váš aktuální adresář kořenový adresář systému. To samozřejmě předpokládá, že aplikace Sublime Text je ve vaší hlavní složce Aplikace.

Vyzkoušejte toto ...

  sudo ln -s / Applications / Sublime \ Text.app/Contents / SharedSupport / bin / subl / bin / sub  

Jeden dodatečný nápad: Změnit obsah položek / bin a / se považuje za špatný postup. usr / bin , protože jakýkoli nadcházející upgrade OS X tam může vymazat obsah. / usr / local / bin je obvyklé místo pro instalaci binárních souborů poskytovaných uživateli, takže

  [[-d / usr / local / bin]] || sudo mkdir / usr / local / binsudo ln -s / Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl / usr / local / bin / sub  

může být lepší možnost.

Nebo (protože pravděpodobně nikdy nebudete muset spouštět Sublime Text z prostředí skriptu prostředí), jednoduše definujte bash alias

  alias sub = / Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl

který by měl být přidán do spouštěcího souboru bash, aby se udržel

  echo "alias sub = / Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl ">> ~ / .bashrc  
Musíte použít `sudo` a pokud budete citovat cestu, nepoužívejte zpětná lomítka k úniku z mezer!
Nezapomeňte uvozovky kolem cesty: alias subl = '/ Aplikace / Sublime \ Text.app/Contents/SharedSupport/bin/subl' Také je lepší dát do ~ / .bash_profile
L.T
2017-08-25 22:59:25 UTC
view on stackexchange narkive permalink

Pozdě na večírek.Při nastavování počítače Mac jsem narazil na stejný problém a vyzkoušel několik věcí.Zde je to, co pro mě fungovalo.

  ln -sv "/ Applications / Sublime Text.app/Contents/SharedSupport/bin/subl" / usr / local / bin / subl
 

Další informace najdete v tomto repo githubu.

Kromě toho, že váš příkaz selže, protože jste nepoužili `sudo` a je to v tomto případě vyžadováno, jak se to liší od toho, co již bylo nabídnuto v mockmanově odpovědi?Kromě toho skutečnost, že se rozhodl použít `sub` vs.` subl`, aby mohl opakovaně psát o jeden znak méně, aby to použil, to opravdu není z toho, co vidím!
@user3439894 sudo není podmínkou.** AND ** výše uvedený příkaz používá jako výše uvedené příkazy `/ usr / local / bin`, nikoli` / usr / bin`.`/ usr / local / bin` je doporučený adresář pro uživatelské aplikace, zatímco / usr / bin se používá pro uživatelské programy spravované distribucí.`Sub` vs` subl` tedy není ** jedinou změnou, záleží jen na preferencích uživatele;co chtějí napsat.Omlouvám se, pokud to způsobuje zmatek ..
1. Spuštěním příkazu z účtu správce se vrací ** `ln: / usr / local / bin / subl: Oprávnění odepřeno` ** 2. Navrhuji, abyste si znovu přečetli mockmanovu odpověď, protože absolutně má` /usr / local / bin / `v druhém příkazu` sudo ln -s` v jeho odpovědi!


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...