어떤 상황에서 일부 프로그램을 특정 디렉터리에서 실행해야 합니까? [폐쇄]

어떤 상황에서 일부 프로그램을 특정 디렉터리에서 실행해야 합니까? [폐쇄]

https://unix.stackexchange.com/a/76641/674

이 디렉토리에서 와인 프로그램을 실행하기 위한 짧은 쉘 스크립트를 작성하십시오 ~/bin/textaloud.

#!/bin/bash
cd "~/.wine/drive_c"
exec wine "~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe" "$@"

실행 권한을 부여합니다.

chmod +x ~/bin/textaloud

위 스크립트에서는 세 가지 사항에 유의해야 합니다.

  • 경로는 cd프로그램이 실행될 위치(디렉토리)입니다.일부 프로그램은 특정 디렉터리에서 실행해야 할 수도 있습니다.문제가 있는 경우 해당 위치에 디렉터리를 설정하십시오(일반적으로 실행 파일과 동일한 위치). 어떤 경우에는 이 줄이 필요하지 않을 수도 있습니다.

어떤 상황에서 특정 프로그램을 Linux의 특정 디렉터리에서 실행해야 합니까?

감사해요.

답변1

CWD를 변경하는 것이 이를 달성하는 유일한 방법은 아닐 수 있지만 보관 프로그램은 종종 CWD를 추출합니다.

또한 프로그램이 디렉터리 이름을 바꾸거나 경로 인수의 일부인 기호 링크를 변경하지 않도록 하고 ./대신 경로를 사용할 수도 있습니다.

볼륨의 CWD 부분을 만들어 볼륨이 마운트 해제되는 것을 방지할 수도 있습니다.

답변2

프로그램을 특정 디렉터리에서 시작해야 하는 경우 일반적으로 두 가지 이유가 있을 수 있습니다.

  • 프로그램 구성에는 절대 경로가 아닌 경로 이름이 포함되어 있으며 프로그램이 해당 특정 디렉터리에서 실행될 때 단순히 올바른 위치를 가리킵니다.

(프로그램이 이런 방식으로 구성되어 있고 실제 프로그램을 시작하기 전에 디렉터리가 자동으로 올바르게 설정되었는지 확인하기 위한 간단한 시작 스크립트 작성 등의 노력을 기울이지 않으면 실수를 저지른 것입니다.)

  • 프로그램은 자신이 시작된 디렉터리에서 특정 콘텐츠를 찾고 이를 처리에 사용할 것으로 예상합니다. 명령은 make다음과 같이 작동합니다. 이를 실행하면 현재 디렉터리에서 또는 이라는 파일을 찾을 것으로 예상하고 Makefile, 파일이 해당 파일에 종속된 파일보다 최신인 경우 파일과 명령 간의 종속성을 식별합니다. 달리다. makefile무엇보다도 이를 통해 개발자는 마지막 빌드 이후 수정된 대규모 프로그램의 일부만 다시 컴파일하여 시간을 절약할 수 있습니다.

(Makefile이 없더라도 최신 GNU는 make미리 설정된 몇 가지 기본 작업을 수행하지만 이는 Makefile을 사용하여 달성할 수 있는 기능에 비해 매우 제한된 기능 집합입니다.)

관련 정보