2012-06-22 4 views
0

나는 무슨 일이 벌어지고 있는지 알지 못해 차이점을 보았습니다..exe를 사용하는 경우와 사용하지 않는 경우?

Windows에서 base64 텍스트를 작성하기 위해 base64.exe을 다운로드했습니다. 나는 그것을 %PATH% 변수에 있기 때문에 C:\Windows\에 복사했습니다.

이제 시도해 보겠습니다. echo Hello | base64 훌륭한 작품입니다. 좋아요. 나는 .exe을 덧붙일 필요가 없으며, 내가 아는 한 .bat.com 파일도 필요 없다는 것을 알고 있습니다.

하지만 지금은 일부 cygwin 도구가 설치되어 있고 라고 표시되어 있기 때문에 예를 들어 which base64을 시도했는데 작동하지 않습니다. 그런 다음 which base64.exe을 입력하고 C:\Windows을 받았습니다.

내 질문은 지금 : 나는 .exe를 사용해야 할 때, 그럴 필요가 없다. Cygwin 도구를 사용하여 .exe를 추가해야하는 경우입니까?

+0

파일 확장명을 제공해야하는지 여부는 사용중인 도구에 따라 다릅니다. 1. 파일을 실행할 때 .exe, .bat 또는 .com을 포함 할 필요가 없습니다. 2.'which'를 호출 할 때 포함시켜야합니다. –

+0

덧붙여 말하면, Windows에는 "where"명령과 비슷한 "where"명령이 있습니다. 그리고 Windows 도구이기 때문에 "base64"가 예상대로 작동합니다. :-) –

답변

1

Cygwin은 UNIX 동작을 에뮬레이트하는 셸입니다. 유닉스는 .exe에 대해 아무 것도 모른다. Cygwin이 base64.exe을 찾을 수없는 이유가 무엇인지. UNIX에서 바이너리는 파일명에 extionsion을 추가하지 않고 저장됩니다. 단지 base64.

Windows CMD는 자동으로 .bat, .com, .exe 등을 파일 이름에 추가합니다. Cygwin은 그렇지 않습니다. 따라서 리눅스 셸을 사용한다면 수동으로 추가해야합니다.

Cygwin은 Windows에서 항상 실행된다는 것을 알고 있기 때문에 쉘 자체에서 특정 작업 (예 : 파일 열기)을 수행하고이 동작이 예상되는 Windows 사용자에게보다 친숙한 행동을 원할 경우 .exe을 추가 할 수 있습니다. 그러나 Cygwin에서 실행되는 프로그램은 주로 UNIX에서 사용을 위해 devoloped 되었기 때문에 이러한 기능을 통합하지 않을 수 있습니다. 이는 which base64이 실패하는 이유가 될 수 있습니다.

+0

하지만 제공된 bash에서 도구를 실행하면 exe 없이도 작동합니다 ... 그래서 약간 엉망입니다. – reox

+0

내 awnser를 확장했습니다. 희망이 도움이됩니다. –

관련 문제