Символическая ссылка не использует целевой рабочий каталог

Я создал следующую символическую ссылку:

Источник: /usr/local/android-ndk-r5/ndk-build Место назначения: /usr/local/bin/ndk-build

Однако, когда я пытаюсь использовать ndk-build из моего исходного каталога , он терпит неудачу, потому что не может найти файлы, от которых зависит скрипт в исходном каталоге.

Как я могу заставить символическую ссылку использовать исходный каталог в качестве рабочего каталога?

5
задан 1 July 2011 в 01:44

16 ответов

Вы не можете, вам нужно создать сценарий оболочки.

Предполагая, что программа использует имя файла для определения скрипта (вероятно):

#!/bin/sh
exec /usr/local/android-ndk-r5/ndk-build "$@"

Предполагая что программа полагается на текущий рабочий каталог (маловероятно):

#!/bin/sh
cd /usr/local/android-ndk-r5
exec ./ndk-build "$@"

Сохраните один из этих файлов в /usr/local/bin/ndk-build и сделайте его исполняемым:

sudo editor /usr/local/bin/ndk-build
sudo chmod 755 /usr/local/bin/ndk-build
5
ответ дан 25 May 2018 в 20:01
  • 1
    FYI, это был первый вариант. Огромное спасибо :) – Mark Ingram 5 July 2011 в 00:45
  • 2
    Я думаю, что вы ошибочно ошиблись. # @ & Quot; – Ahmed Essam 3 September 2016 в 17:05
  • 3
    @AhmedEssam Исправлено сейчас, а также добавлено exec для замены текущего процесса оболочки. Без этого у вас будет дополнительный бесполезный процесс, который будет находиться там до выхода дочернего процесса (ndk-build). – Lekensteyn 3 September 2016 в 21:03

Вы не можете, вам нужно создать сценарий оболочки.

Предполагая, что программа использует имя файла для определения скрипта (вероятно):

#!/bin/sh exec /usr/local/android-ndk-r5/ndk-build "$@"

Предполагая что программа полагается на текущий рабочий каталог (маловероятно):

#!/bin/sh cd /usr/local/android-ndk-r5 exec ./ndk-build "$@"

Сохраните один из этих файлов в /usr/local/bin/ndk-build и сделайте его исполняемым:

sudo editor /usr/local/bin/ndk-build sudo chmod 755 /usr/local/bin/ndk-build
5
ответ дан 25 July 2018 в 21:38

Вы не можете, вам нужно создать сценарий оболочки.

Предполагая, что программа использует имя файла для определения скрипта (вероятно):

#!/bin/sh exec /usr/local/android-ndk-r5/ndk-build "$@"

Предполагая что программа полагается на текущий рабочий каталог (маловероятно):

#!/bin/sh cd /usr/local/android-ndk-r5 exec ./ndk-build "$@"

Сохраните один из этих файлов в /usr/local/bin/ndk-build и сделайте его исполняемым:

sudo editor /usr/local/bin/ndk-build sudo chmod 755 /usr/local/bin/ndk-build
5
ответ дан 2 August 2018 в 03:15

Вы не можете, вам нужно создать сценарий оболочки.

Предполагая, что программа использует имя файла для определения скрипта (вероятно):

#!/bin/sh exec /usr/local/android-ndk-r5/ndk-build "$@"

Предполагая что программа полагается на текущий рабочий каталог (маловероятно):

#!/bin/sh cd /usr/local/android-ndk-r5 exec ./ndk-build "$@"

Сохраните один из этих файлов в /usr/local/bin/ndk-build и сделайте его исполняемым:

sudo editor /usr/local/bin/ndk-build sudo chmod 755 /usr/local/bin/ndk-build
5
ответ дан 4 August 2018 в 19:09

Вы не можете, вам нужно создать сценарий оболочки.

Предполагая, что программа использует имя файла для определения скрипта (вероятно):

#!/bin/sh exec /usr/local/android-ndk-r5/ndk-build "$@"

Предполагая что программа полагается на текущий рабочий каталог (маловероятно):

#!/bin/sh cd /usr/local/android-ndk-r5 exec ./ndk-build "$@"

Сохраните один из этих файлов в /usr/local/bin/ndk-build и сделайте его исполняемым:

sudo editor /usr/local/bin/ndk-build sudo chmod 755 /usr/local/bin/ndk-build
5
ответ дан 6 August 2018 в 03:26

Вы не можете, вам нужно создать сценарий оболочки.

Предполагая, что программа использует имя файла для определения сценария (вероятно):

  #  ! / bin / sh exec / usr / local / android-ndk-r5 / ndk-build "$ @"  

Предполагая, что программа полагается на текущий рабочий каталог (маловероятно): [ ! d6]

  #! / bin / sh cd / usr / local / android-ndk-r5 exec ./ndk-build "$ @"  

Сохранить один из эти файлы в / usr / local / bin / ndk-build и сделать его исполняемым:

  sudo editor / usr / local / bin / ndk-build sudo chmod 755  / usr / local / bin / ndk-build  
5
ответ дан 7 August 2018 в 21:13

Вы не можете, вам нужно создать сценарий оболочки.

Предполагая, что программа использует имя файла для определения сценария (вероятно):

  #  ! / bin / sh exec / usr / local / android-ndk-r5 / ndk-build "$ @"  

Предполагая, что программа полагается на текущий рабочий каталог (маловероятно): [ ! d6]

  #! / bin / sh cd / usr / local / android-ndk-r5 exec ./ndk-build "$ @"  

Сохранить один из эти файлы в / usr / local / bin / ndk-build и сделать его исполняемым:

  sudo editor / usr / local / bin / ndk-build sudo chmod 755  / usr / local / bin / ndk-build  
5
ответ дан 10 August 2018 в 09:32

Вы не можете, вам нужно создать сценарий оболочки.

Предполагая, что программа использует имя файла для определения сценария (вероятно):

  #  ! / bin / sh exec / usr / local / android-ndk-r5 / ndk-build "$ @"  

Предполагая, что программа полагается на текущий рабочий каталог (маловероятно): [ ! d6]

  #! / bin / sh cd / usr / local / android-ndk-r5 exec ./ndk-build "$ @"  

Сохранить один из эти файлы в / usr / local / bin / ndk-build и сделать его исполняемым:

  sudo editor / usr / local / bin / ndk-build sudo chmod 755  / usr / local / bin / ndk-build  
5
ответ дан 13 August 2018 в 15:41
  • 1
    FYI, это был первый вариант. Огромное спасибо :) – Mark Ingram 5 July 2011 в 00:45
  • 2
    Я думаю, что вы ошибочно ошиблись. # @ & Quot; – Ahmed Essam 3 September 2016 в 17:05
  • 3
    @AhmedEssam Исправлено сейчас, а также добавлено exec , чтобы заменить текущий процесс оболочки. Без этого у вас будет дополнительный бесполезный процесс, который будет находиться там до выхода дочернего процесса (ndk-build). – Lekensteyn 3 September 2016 в 21:03

При вызове-выполнении программы под GNU Linux получают некоторые аргументы командной строки, включая текущий рабочий каталог.

Код в программе решает, как использовать эти аргументы, поэтому код решает, программа будет использовать каталог ссылки или каталог цели.

По-видимому, ndk-build использует каталог ссылки для поиска своих собственных файлов, поэтому вам приходится создавать какую-то оболочку.

Будьте внимательны, чтобы не смешивать «восприятие» текущего рабочего каталога (под которым запускается команда ndk-build , которая является каталогом, возвращаемым командой pwd), восприятие "каталога, используемого ndk-build, для поиска его собственных файлов.

0
ответ дан 25 May 2018 в 20:01

При вызове-выполнении программы под GNU Linux получают некоторые аргументы командной строки, включая текущий рабочий каталог.

Код в программе решает, как использовать эти аргументы, поэтому код решает, программа будет использовать каталог ссылки или каталог цели.

По-видимому, ndk-build использует каталог ссылки для поиска своих собственных файлов, поэтому вам приходится создавать какую-то оболочку.

Будьте внимательны, чтобы не смешивать «восприятие» текущего рабочего каталога (под которым запускается команда ndk-build , которая является каталогом, возвращаемым командой pwd), восприятие "каталога, используемого ndk-build, для поиска его собственных файлов.

0
ответ дан 25 July 2018 в 21:38

При вызове-выполнении программы под GNU Linux получают некоторые аргументы командной строки, включая текущий рабочий каталог.

Код в программе решает, как использовать эти аргументы, поэтому код решает, программа будет использовать каталог ссылки или каталог цели.

По-видимому, ndk-build использует каталог ссылки для поиска своих собственных файлов, поэтому вам приходится создавать какую-то оболочку.

Будьте внимательны, чтобы не смешивать «восприятие» текущего рабочего каталога (под которым запускается команда ndk-build , которая является каталогом, возвращаемым командой pwd), восприятие "каталога, используемого ndk-build, для поиска его собственных файлов.

0
ответ дан 2 August 2018 в 03:15

При вызове-выполнении программы под GNU Linux получают некоторые аргументы командной строки, включая текущий рабочий каталог.

Код в программе решает, как использовать эти аргументы, поэтому код решает, программа будет использовать каталог ссылки или каталог цели.

По-видимому, ndk-build использует каталог ссылки для поиска своих собственных файлов, поэтому вам приходится создавать какую-то оболочку.

Будьте внимательны, чтобы не смешивать «восприятие» текущего рабочего каталога (под которым запускается команда ndk-build , которая является каталогом, возвращаемым командой pwd), восприятие "каталога, используемого ndk-build, для поиска его собственных файлов.

0
ответ дан 4 August 2018 в 19:09

При вызове-выполнении программы под GNU Linux получают некоторые аргументы командной строки, включая текущий рабочий каталог.

Код в программе решает, как использовать эти аргументы, поэтому код решает, программа будет использовать каталог ссылки или каталог цели.

По-видимому, ndk-build использует каталог ссылки для поиска своих собственных файлов, поэтому вам приходится создавать какую-то оболочку.

Будьте внимательны, чтобы не смешивать «восприятие» текущего рабочего каталога (под которым запускается команда ndk-build , которая является каталогом, возвращаемым командой pwd), восприятие "каталога, используемого ndk-build, для поиска его собственных файлов.

0
ответ дан 6 August 2018 в 03:26

При вызове-выполнении программы под GNU Linux получают некоторые аргументы командной строки, включая текущий рабочий каталог.

Код в программе решает, как использовать эти аргументы, поэтому код решает, программа будет использовать каталог ссылки или каталог цели.

По-видимому, ndk-build использует каталог ссылки для поиска собственных файлов, поэтому вы принудительно для создания своего рода обертки.

Будьте внимательны, чтобы не смешивать «восприятие» текущего рабочего каталога (под которым выполняется ваша команда , которая является каталогом, возвращенным командой pwd ) с «восприятием» каталога, используемого ndk-build , чтобы найти свои собственные файлы.

0
ответ дан 7 August 2018 в 21:13

При вызове-выполнении программы под GNU Linux получают некоторые аргументы командной строки, включая текущий рабочий каталог.

Код в программе решает, как использовать эти аргументы, поэтому код решает, программа будет использовать каталог ссылки или каталог цели.

По-видимому, ndk-build использует каталог ссылки для поиска собственных файлов, поэтому вы принудительно для создания своего рода обертки.

Будьте внимательны, чтобы не смешивать «восприятие» текущего рабочего каталога (под которым выполняется ваша команда , которая является каталогом, возвращенным командой pwd ) с «восприятием» каталога, используемого ndk-build , чтобы найти свои собственные файлы.

0
ответ дан 10 August 2018 в 09:32

При вызове-выполнении программы под GNU Linux получают некоторые аргументы командной строки, включая текущий рабочий каталог.

Код в программе решает, как использовать эти аргументы, поэтому код решает, программа будет использовать каталог ссылки или каталог цели.

По-видимому, ndk-build использует каталог ссылки для поиска собственных файлов, поэтому вы принудительно для создания своего рода обертки.

Будьте внимательны, чтобы не смешивать «восприятие» текущего рабочего каталога (под которым выполняется ваша команда , которая является каталогом, возвращенным командой pwd ) с «восприятием» каталога, используемого ndk-build , чтобы найти свои собственные файлы.

0
ответ дан 13 August 2018 в 15:41

Другие вопросы по тегам:

Похожие вопросы: