Сменить каталог и выполнить файл в одной команде
Когда я хочу выполнить файл, мне кажется, что я всегда должен сначала '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'