/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프로세스는 호출 프로세스의 작업 디렉터리를 표준 방식으로 변경할 수 없습니다.

관련 정보