win10에서 일부 파일 권한을 변경해야 합니다. cygwin에서는 이 명령을 실행할 수 있지만 git bash minGW64에서는 작동하지 않습니다. 이유를 설명해 줄 수 있는 사람이 있습니까?
Cygwin 터미널의 결과:
$ chmod 777 testfile
$ ls -l
total 0
-rwxrwxrwx 1 Jon Domain Users 0 Nov 1 11:57 testfile
하지만 mingw64에서는:
$ touch test
-rw-r--r-- 1 jon 1049089 0 Nov 1 12:17 test
$ chmod 777 test
$ ll
-rw-r--r-- 1 jon 1049089 0 Nov 1 12:17 test
chmod를 사용하면 오류 메시지도 표시되지 않습니다.
chmod가 제대로 작동하도록 문제를 해결하려면 어떻게 해야 합니까?
답변1
Cygwin은 Windows의 더 복잡한 ACL을 사용하여 POSIX 기본 권한을 에뮬레이션하려고 시도합니다. 밍웨이는 그렇지 않았다.
그러나 옵션이 없는 것은 아닙니다. ~에서Cygwin 문서(둘 다에 영향을 미침):
.exe
특정 확장자( , , )로.com
끝나는 파일은.lnk
실행 가능한 것으로 간주됩니다. 처음 두 문자가 "#!
", "MZ
" 또는 ":\n
"인 파일도 실행 가능한 것으로 간주됩니다.
이 :
옵션은 원할 경우 파일에 대해서도 이 작업을 수행할 수 있음을 의미합니다..bat
편집: 이것이 git bash를 사용하고 있다는 사실을 놓쳤습니다. 이것이 git 저장소라면 chmod를 사용할 필요가 없으며 대신 원하는 것을 git에 직접 알릴 수 있습니다.
git update-index --chmod=+x setupscript.sh
답변2
이것은 MinGW에서 작업하는 방법에 대한 질문에 정확하게 대답하지는 않지만 chmod
(그렇지는 않습니다) 출력에 표시할 올바른 권한 비트를 얻고 ls
입력 후 실행 파일의 자동 완성을 활성화합니다../
<탭>.
그러므로 만일
- 파일은 수정될 수 있으며,
- 문제의 실행 파일은 인터프리터에 의해 실행됩니다.
파일의 첫 번째 줄에 적절한 shebang을 추가하세요.MinGW는 자동으로 실행 가능한 것으로 간주합니다.
예를 들어, 아래 표시된 파일에 대해 다음과 같은 권한을 얻습니다. 특정 파일 확장자가 필요하지 않습니다.
$ ll
total 3
-rwxr-xr-x 1 user 197121 47 Oct 13 07:14 abc*
-rw-r--r-- 1 user 197121 43 Oct 13 07:14 def
-rwxr-xr-x 1 user 197121 49 Oct 13 07:16 ghi*
문서 내용:
알파벳:
#! /bin/sh
echo I show as an executable.
정의:
echo I do NOT show as executable, though `./def` will run me.
운이 좋은:
#! /c/Python39/python
print("MinGW sees me as executable too.")