Как запустить файл в другом каталоге

Видеопроигрыватель по умолчанию Ubuntu по умолчанию totem, поэтому, если вы хотите найти PID видеопроигрывателя, вы должны найти процесс totem. Вы можете сделать так:

ps aux | grep totem, тогда вы можете убить PID из totem. И вы можете получить информацию в SoundVideoDefault

4
задан 17 May 2018 в 15:09

12 ответов

[D0] Конечно! Если somefile помечен как исполняемый файл, вы можете запустить его с помощью

~/directoryA/directoryB/directoryC/DirectoryD/somefile

Хотите узнать, является ли исполняемый файл somefile ? Перейдите в его каталог и запустите

find . -maxdepth 1 -perm -111 -type f

, чтобы просмотреть все исполняемые файлы в этом каталоге.

1
ответ дан 17 July 2018 в 14:06

Существует другой способ (как-то еще не упомянутый), используя профиль оболочки (.bashrc, .zshrc и т. д.).

Вы можете запустить:

# Assuming it is a script you made, changing file permission to make it executable chmod a+x ~/directoryA/directoryB/directoryC/directoryD/somefile # Appending your shell profile with an alias to run the script from wherever you are echo "alias somename=\"source ~/directoryA/directoryB/directoryC/directoryD/somefile\"" >> ~/.profile # replace ~/.profile with config file of whichever shell you use # Also replace source with python if the script is a python script or whichever interpreter it requires for execution # Make sure you have #!/usr/bin/env python or #!/path/to/interpreter on your computer as the first line of your script

выше, позволяет сценарию запускать из любого места, где вы должны убедиться, что сценарий не зависит от pwd (настоящего рабочего каталога) для выполнения (если только не предназначено).

Затем вы можете запустить сценарий как исполняемый файл в любом каталоге, например:

somename

PS: Что касается того, почему не добавлять каталог в PATH, просто было предположено, что должен быть добавлен только один исполняемый файл, а не каталог, полный исполняемых файлов как и инструменты adb-platform, и в этом случае будет использоваться метод добавления пути к PATH.

-2
ответ дан 17 July 2018 в 14:06

Нет, вам не нужно использовать:

cd home/directoryA/directoryB/directoryC/DirectoryD ./somefile 

Вы можете просто запустить команду, предварительно указав ее своим путем:

/home/directoryA/directoryB/directoryC/DirectoryD/somefile

Поскольку вы уже находитесь в /home/directoryA вы можете использовать текущий ярлык . и запустить команду следующим образом:

./directoryB/directoryC/DirectoryD/somefile

Я заметил, что OP расширяет область видимости с помощью комментариев по другим ответам. Вот дополнительная информация:

Чтобы узнать, где находится somefile, используйте: locate somefile. Если somefile был добавлен сегодня, вам нужно сначала обновить базу данных локализации, запустив sudo updatedb. Когда есть несколько версий somefile, расположенных в PATH, вы можете узнать, какой из них выполняется, сначала используйте which somefile. Если вы хотите запустить somefile, не указав имя каталога впереди, поместите его в путь. Для проверки пути используйте echo $PATH. Для размещения somefile в общих папках пути используются /usr/local/bin (если он использует полномочия sudo) и /home/your_user_name/bin (возможно, вам придется сначала создать каталог). Вы также можете добавить /home/directoryA/directoryB/directoryC/DirectoryD/ к своему пути, но это было бы очень необычно. Однако вы можете просто набрать somefile независимо от того, в какой директории вы находитесь, и он будет работать. Конечно, somefile должен быть исполняемым, который вы задали с помощью команды: chmod a+x /home/directoryA/directoryB/directoryC/DirectoryD/somefile
6
ответ дан 17 July 2018 в 14:06

Переменная оболочки $PATH содержит каталоги, в которых выполняется поиск исполняемых файлов. Добавьте каталог, содержащий ваш исполняемый файл, в $PATH, и его можно выполнить из любого места.

Добавить в .bashrc файл:

export PATH=$PATH:/../your_directory
1
ответ дан 17 July 2018 в 14:06
[D0] Конечно! Если somefile помечен как исполняемый файл, вы можете запустить его с помощью

~/directoryA/directoryB/directoryC/DirectoryD/somefile

Хотите узнать, является ли исполняемый файл somefile ? Перейдите в его каталог и запустите

find . -maxdepth 1 -perm -111 -type f

, чтобы просмотреть все исполняемые файлы в этом каталоге.

1
ответ дан 20 July 2018 в 14:10
  • 1
    Хорошо, вы можете сообщить мне, как я буду выполнять файл, если я еще не в каталоге A, но в другом каталоге. – Carltonp 17 May 2018 в 02:25
  • 2
    Кроме того, можете ли вы сообщить мне, как узнать, в каком каталоге находится файл? – Carltonp 17 May 2018 в 02:27
  • 3
    Если вы хотите узнать, является ли он исполняемым, почему бы не запустить ls -l /directoryA/directoryB/directoryC/DirectoryD/somefile? – wjandrea 17 May 2018 в 06:31
  • 4
    @Carltonp Пожалуйста, разместите еще один вопрос о том, где найти месторасположение файла. Люди, которые управляют этим местом, как идея «одна проблема за пост». - И мой ответ работает независимо от того, в каком каталоге вы находитесь. – K7AAY 17 May 2018 в 23:13

Существует другой способ (как-то еще не упомянутый), используя профиль оболочки (.bashrc, .zshrc и т. д.).

Вы можете запустить:

# Assuming it is a script you made, changing file permission to make it executable chmod a+x ~/directoryA/directoryB/directoryC/directoryD/somefile # Appending your shell profile with an alias to run the script from wherever you are echo "alias somename=\"source ~/directoryA/directoryB/directoryC/directoryD/somefile\"" >> ~/.profile # replace ~/.profile with config file of whichever shell you use # Also replace source with python if the script is a python script or whichever interpreter it requires for execution # Make sure you have #!/usr/bin/env python or #!/path/to/interpreter on your computer as the first line of your script

выше, позволяет сценарию запускать из любого места, где вы должны убедиться, что сценарий не зависит от pwd (настоящего рабочего каталога) для выполнения (если только не предназначено).

Затем вы можете запустить сценарий как исполняемый файл в любом каталоге, например:

somename

PS: Что касается того, почему не добавлять каталог в PATH, просто было предположено, что должен быть добавлен только один исполняемый файл, а не каталог, полный исполняемых файлов как и инструменты adb-platform, и в этом случае будет использоваться метод добавления пути к PATH.

-2
ответ дан 20 July 2018 в 14:10
  • 1
    @peter: Только соответствующий автор вопроса может принять ответ. Если вы являетесь автором этого вопроса в другой учетной записи, войдите в первоначальную учетную запись, чтобы принять ответ. Если у вас нет доступа к исходной учетной записи, вы можете использовать контактную форму для подачи заявки, чтобы ваши учетные записи были объединены. – David Foerster 18 May 2018 в 01:15
  • 2
    -1 Зачем исходный файл вместо его запуска? (Хотя, если вам нужно его загрузить, он не обязательно должен быть исполняемым.) Также лучше определить псевдонимы в .bashrc, а не .profile. И зачем создавать псевдоним вместо добавления каталога в PATH? – wjandrea 24 May 2018 в 05:18
  • 3
    О, я думаю, что может возникнуть путаница в использовании OP src в вопросе. Я не думаю, что это должно означать то же, что и source. – wjandrea 24 May 2018 в 05:24
  • 4
    я сказал, попросить заменить источник с именем интерпретатора, такого как sh, python и т. д., но дал источник в примере из-за написания OP src, который, как источник с ошибкой, мне тоже не относится ни к каким исполняемым файлам. Что касается того, почему не добавлять каталог в PATH, просто было предположено, что нужно добавить только один исполняемый файл, а не каталог, полный исполняемых файлов, таких как инструменты adb-platform, и в этом случае добавление пути к каталогу в PATH будет способом использовать. – ToxicMender 25 May 2018 в 00:07

Нет, вам не нужно использовать:

cd home/directoryA/directoryB/directoryC/DirectoryD ./somefile 

Вы можете просто запустить команду, предварительно указав ее своим путем:

/home/directoryA/directoryB/directoryC/DirectoryD/somefile

Поскольку вы уже находитесь в /home/directoryA вы можете использовать текущий ярлык . и запустить команду следующим образом:

./directoryB/directoryC/DirectoryD/somefile

Я заметил, что OP расширяет область видимости с помощью комментариев по другим ответам. Вот дополнительная информация:

Чтобы узнать, где находится somefile, используйте: locate somefile. Если somefile был добавлен сегодня, вам нужно сначала обновить базу данных локализации, запустив sudo updatedb. Когда есть несколько версий somefile, расположенных в PATH, вы можете узнать, какой из них выполняется, сначала используйте which somefile. Если вы хотите запустить somefile, не указав имя каталога впереди, поместите его в путь. Для проверки пути используйте echo $PATH. Для размещения somefile в общих папках пути используются /usr/local/bin (если он использует полномочия sudo) и /home/your_user_name/bin (возможно, вам придется сначала создать каталог). Вы также можете добавить /home/directoryA/directoryB/directoryC/DirectoryD/ к своему пути, но это было бы очень необычно. Однако вы можете просто набрать somefile независимо от того, в какой директории вы находитесь, и он будет работать. Конечно, somefile должен быть исполняемым, который вы задали с помощью команды: chmod a+x /home/directoryA/directoryB/directoryC/DirectoryD/somefile
6
ответ дан 20 July 2018 в 14:10

Переменная оболочки $PATH содержит каталоги, в которых выполняется поиск исполняемых файлов. Добавьте каталог, содержащий ваш исполняемый файл, в $PATH, и его можно выполнить из любого места.

Добавить в .bashrc файл:

export PATH=$PATH:/../your_directory
1
ответ дан 20 July 2018 в 14:10
  • 1
    /.. совпадает с /. Предполагается, что это /...? – wjandrea 24 May 2018 в 04:59
[D0] Конечно! Если somefile помечен как исполняемый файл, вы можете запустить его с помощью

~/directoryA/directoryB/directoryC/DirectoryD/somefile

Хотите узнать, является ли исполняемый файл somefile ? Перейдите в его каталог и запустите

find . -maxdepth 1 -perm -111 -type f

, чтобы просмотреть все исполняемые файлы в этом каталоге.

1
ответ дан 23 July 2018 в 09:41
  • 1
    Хорошо, вы можете сообщить мне, как я буду выполнять файл, если я еще не в каталоге A, но в другом каталоге. – Carltonp 17 May 2018 в 02:25
  • 2
    Кроме того, можете ли вы сообщить мне, как узнать, в каком каталоге находится файл? – Carltonp 17 May 2018 в 02:27
  • 3
    Если вы хотите узнать, является ли он исполняемым, почему бы не запустить ls -l /directoryA/directoryB/directoryC/DirectoryD/somefile? – wjandrea 17 May 2018 в 06:31
  • 4
    @Carltonp Пожалуйста, разместите еще один вопрос о том, где найти месторасположение файла. Люди, которые управляют этим местом, как идея «одна проблема за пост». - И мой ответ работает независимо от того, в каком каталоге вы находитесь. – K7AAY 17 May 2018 в 23:13

Существует другой способ (как-то еще не упомянутый), используя профиль оболочки (.bashrc, .zshrc и т. д.).

Вы можете запустить:

# Assuming it is a script you made, changing file permission to make it executable chmod a+x ~/directoryA/directoryB/directoryC/directoryD/somefile # Appending your shell profile with an alias to run the script from wherever you are echo "alias somename=\"source ~/directoryA/directoryB/directoryC/directoryD/somefile\"" >> ~/.profile # replace ~/.profile with config file of whichever shell you use # Also replace source with python if the script is a python script or whichever interpreter it requires for execution # Make sure you have #!/usr/bin/env python or #!/path/to/interpreter on your computer as the first line of your script

выше, позволяет сценарию запускать из любого места, где вы должны убедиться, что сценарий не зависит от pwd (настоящего рабочего каталога) для выполнения (если только не предназначено).

Затем вы можете запустить сценарий как исполняемый файл в любом каталоге, например:

somename

PS: Что касается того, почему не добавлять каталог в PATH, просто было предположено, что должен быть добавлен только один исполняемый файл, а не каталог, полный исполняемых файлов как и инструменты adb-platform, и в этом случае будет использоваться метод добавления пути к PATH.

-2
ответ дан 23 July 2018 в 09:41
  • 1
    @peter: Только соответствующий автор вопроса может принять ответ. Если вы являетесь автором этого вопроса в другой учетной записи, войдите в первоначальную учетную запись, чтобы принять ответ. Если у вас нет доступа к исходной учетной записи, вы можете использовать контактную форму для подачи заявки, чтобы ваши учетные записи были объединены. – David Foerster 18 May 2018 в 01:15
  • 2
    -1 Зачем исходный файл вместо его запуска? (Хотя, если вам нужно его загрузить, он не обязательно должен быть исполняемым.) Также лучше определить псевдонимы в .bashrc, а не .profile. И зачем создавать псевдоним вместо добавления каталога в PATH? – wjandrea 24 May 2018 в 05:18
  • 3
    О, я думаю, что может возникнуть путаница в использовании OP src в вопросе. Я не думаю, что это должно означать то же, что и source. – wjandrea 24 May 2018 в 05:24
  • 4
    я сказал, попросить заменить источник с именем интерпретатора, такого как sh, python и т. д., но дал источник в примере из-за написания OP src, который, как источник с ошибкой, мне тоже не относится ни к каким исполняемым файлам. Что касается того, почему не добавлять каталог в PATH, просто было предположено, что нужно добавить только один исполняемый файл, а не каталог, полный исполняемых файлов, таких как инструменты adb-platform, и в этом случае добавление пути к каталогу в PATH будет способом использовать. – ToxicMender 25 May 2018 в 00:07

Нет, вам не нужно использовать:

cd home/directoryA/directoryB/directoryC/DirectoryD ./somefile 

Вы можете просто запустить команду, предварительно указав ее своим путем:

/home/directoryA/directoryB/directoryC/DirectoryD/somefile

Поскольку вы уже находитесь в /home/directoryA вы можете использовать текущий ярлык . и запустить команду следующим образом:

./directoryB/directoryC/DirectoryD/somefile

Я заметил, что OP расширяет область видимости с помощью комментариев по другим ответам. Вот дополнительная информация:

Чтобы узнать, где находится somefile, используйте: locate somefile. Если somefile был добавлен сегодня, вам нужно сначала обновить базу данных локализации, запустив sudo updatedb. Когда есть несколько версий somefile, расположенных в PATH, вы можете узнать, какой из них выполняется, сначала используйте which somefile. Если вы хотите запустить somefile, не указав имя каталога впереди, поместите его в путь. Для проверки пути используйте echo $PATH. Для размещения somefile в общих папках пути используются /usr/local/bin (если он использует полномочия sudo) и /home/your_user_name/bin (возможно, вам придется сначала создать каталог). Вы также можете добавить /home/directoryA/directoryB/directoryC/DirectoryD/ к своему пути, но это было бы очень необычно. Однако вы можете просто набрать somefile независимо от того, в какой директории вы находитесь, и он будет работать. Конечно, somefile должен быть исполняемым, который вы задали с помощью команды: chmod a+x /home/directoryA/directoryB/directoryC/DirectoryD/somefile
6
ответ дан 23 July 2018 в 09:41

Переменная оболочки $PATH содержит каталоги, в которых выполняется поиск исполняемых файлов. Добавьте каталог, содержащий ваш исполняемый файл, в $PATH, и его можно выполнить из любого места.

Добавить в .bashrc файл:

export PATH=$PATH:/../your_directory
1
ответ дан 23 July 2018 в 09:41
  • 1
    /.. совпадает с /. Предполагается, что это /...? – wjandrea 24 May 2018 в 04:59

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

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