특정 파일의 실행 비트를 자동으로 설정하는 방법

특정 파일의 실행 비트를 자동으로 설정하는 방법

특정 파일을 생성할 때 vim 편집기에서 생성한다고 가정하면 생성된 파일에도 실행 권한이 부여되어야 합니다. 일부 Python 파일을 생성 중이고 해당 파일에 대한 권한을 명시적으로 설정하고 싶지 않기 때문에 이것을 원합니다. 따라서 특정 확장자를 가진 파일을 만들거나 특정 편집기를 사용하자마자 권한을 설정할 수 있는 방법이 필요합니다. 실행 비트.

답변1

vim의 경우 강력한 스크립트를 사용할 수 있습니다. 예를 들어, 내 .vimrc에는 다음이 있습니다.

" Stolen from http://www.debian-administration.org/articles/571
" Sets +x on stuff starting with the magic shebang.
au BufWritePost * if getline(1) =~ "^#!" | silent !chmod a+x <afile>

#! 줄을 찾는 대신 파일 이름으로 이 작업을 수행하려면 다음을 수행할 수 있습니다.

au BufWritePost *.ext silent !chmod a+x <afile>     " untested

저것데비안 관리에 관한 기사EMACS에 대한 지침도 있습니다.

답변2

내가 좋아하는 만큼데로베르의 답변, VIM에서 다음과 같은 경고를 표시합니다.

W16: 경고: 편집이 시작된 이후 "test.sh" 파일의 모드가 변경되었습니다.

다음(약간 긴) 코드는 문제를 해결합니다(Python 지원과 함께 vim 필요).

function! SetExecutableBit()
python <<EOD
import vim
import os
import stat
filename = vim.current.buffer.name
mode = os.stat(filename).st_mode
os.chmod(filename, mode | stat.S_IXUSR)
EOD
endfunction

autocmd BufWritePost *
    \ if getline(1) =~ "^#!" | call SetExecutableBit()

답변3

네트워크에서 시스템으로 전송되는 바이너리에 대한 실행 비트를 자동으로 설정하고 싶어서 여기에 왔습니다. 가능합니까? 감사해요!

관련 정보