Использование /usr/bin/env для смены каталога

Использование /usr/bin/env для смены каталога

Я хочу автоматически выполнять команды с префиксом/usr/bin/env

$/usr/bin/env composer install (this runs OK)
$/usr/bin/env cd public (failed ---> /usr/bin/env: cd: No such file or directory)

Я новичок в Linux и, по-моему, использование /usr/bin/env— странный способ записи команд. Интересно, почему моя вторая строка не сработала (хотя некоторые сработали, например mkdirили ls)

Причина, по которой я не могу избавиться от , /usr/bin/envзаключается в том, что я использую Capistrano, и он продолжает добавлять префикс. Если есть способ избавиться от /usr/bin/env, это еще лучше.

Заранее спасибо.

решение1

Вы не можете запустить, env cd /path/to/directoryпотому что в вашей системе нет вызываемой программы cd. Процесс может изменить свой рабочий каталог с помощью системного вызова. В оболочке вы можете использовать встроенную команду cd. Вызов ее из envне имеет смысла, так как он создает новый процесс, который завершится сразу после изменения своего рабочего каталога. Новый envпроцесс не может изменить рабочий каталог вызывающего процесса стандартным способом.

Связанный контент