Wednesday, July 12, 2006
[리눅스/Cygwin] 현재 디렉토리의 파일 실행하기; 현재 디렉토리를 패스(PATH)에 추가
리눅스에서는, 현재 디렉토리가 패스(PATH)에 없다면, 현재 디렉토리에 있는 파일이라도 실행할 수 없습니다. 이것이 참 불편하더군요. 바로 코앞에 있는 파일을 못찾아서 command not found 에러를 내니 말입니다. (반면, 도스에서는, 현재 디렉토리의 파일은 항상 실행할 수 있습니다.)
시그윈 가이드에 간단한 해결책이 있었습니다:
.profile
또는
.bash_profile
의 끝에 다음의 코드를 추가하는 것입니다:
${PATH} 은 기존의 패스 문자열을 나타내고,
점(.)은 현재 디렉토리를 나타냅니다.
이러면 현재 디렉토리가 어디든 상관 없이, 현재 디렉토리에 있는 파일을 항상 실행시킬 수 있습니다.
그런데 위와 같이 할 경우 보안에 취약해진다고 하더군요.
보안에 신경이 쓰일 경우에는 위와 같이 패스를 조정하지 말고, 좀 불편하더라도 명령어 앞에
./
를 붙여 실행하면 됩니다.
만약 현재 디렉토리에 있는 0.bat 이라는 파일을 실행하려면
./0.bat
이라고 해주면 됩니다.
설정 파일 수정으로
시그윈 가이드에 간단한 해결책이 있었습니다:
.profile
또는
.bash_profile
의 끝에 다음의 코드를 추가하는 것입니다:
PATH=${PATH}:.
${PATH} 은 기존의 패스 문자열을 나타내고,
점(.)은 현재 디렉토리를 나타냅니다.
이러면 현재 디렉토리가 어디든 상관 없이, 현재 디렉토리에 있는 파일을 항상 실행시킬 수 있습니다.
수동으로 파일 실행
그런데 위와 같이 할 경우 보안에 취약해진다고 하더군요.
보안에 신경이 쓰일 경우에는 위와 같이 패스를 조정하지 말고, 좀 불편하더라도 명령어 앞에
./
를 붙여 실행하면 됩니다.
만약 현재 디렉토리에 있는 0.bat 이라는 파일을 실행하려면
./0.bat
이라고 해주면 됩니다.
tag: linux
리눅스 Linux | 유닉스 Unix | 시그윈 Cygwin
<< Home