Сменить каталог и выполнить файл в одной команде

Когда я хочу выполнить файл, мне кажется, что я всегда должен сначала 'cd' в каталог этого файла, прежде чем выполнить его, если только он не завершится ошибкой типа невозможен-найти-мои-данные.

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

Пример:

cd /usr/local/bin/minecraft/
java -Xms512M -Xmx2048M -jar minecraft.jar

Как я могу сделать это в одну строку, чтобы я мог указать ее в качестве строки Exec =_ при создании пользовательского модуля запуска в Gnome3?

4 ответа

Решение

cd /usr/local/bin/minecraft/ && java -Xms512M -Xmx2048M -jar minecraft.jar должен сделать это

Я снова отвечаю на этот вопрос с некоторым расширением, чтобы другие сочли это полезным.

cd /usr/local/bin/minecraft/ && java -Xms512M -Xmx2048M -jar minecraft.jar

Эта команда точно подойдет. Но после выполнения этой команды вы останетесь в /usr/local/bin/minecraft/каталог. И, если вы используете эту команду в сценарии bash, все последующие команды будут выполняться в этом каталоге.

Если вы хотите запустить команду в желаемом каталоге и немедленно вернуться туда, где вы были, заключите команду в круглые скобки, т. Е.

(cd /usr/local/bin/minecraft/ && java -Xms512M -Xmx2048M -jar minecraft.jar)

java -Xms512M -Xmx2048M -jar /usr/local/bin/minecraft/minecraft.jar

В качестве альтернативы (например, при передаче в другое место для выполнения)

          sh -c 'cd /usr/local/bin/minecraft; java -Xms512M -Xmx2048M -jar minecraft.jar'
Другие вопросы по тегам