![어떤 상황에서 일부 프로그램을 특정 디렉터리에서 실행해야 합니까? [폐쇄]](https://linux55.com/image/129967/%EC%96%B4%EB%96%A4%20%EC%83%81%ED%99%A9%EC%97%90%EC%84%9C%20%EC%9D%BC%EB%B6%80%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%84%20%ED%8A%B9%EC%A0%95%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%EC%84%9C%20%EC%8B%A4%ED%96%89%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
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을 사용하여 달성할 수 있는 기능에 비해 매우 제한된 기능 집합입니다.)