chmod -R 755 some_dir
"some_dir"에 ".git" 폴더가 포함된 작업을 수행 해야 합니다 . 재귀적 chmod를 수행할 때 숨겨진 파일과 폴더를 제외할 수 있는 방법이 있습니까?
참고: .git 폴더를 chmoding하면 다음 오류가 발생합니다.
some_dir/.git/objects/pack/pack-dd149b11c4e5d205e3022836d49a972684de8daa.idx': Operation not permitted
.git 폴더를 chmod할 필요는 없지만 불행히도 내 경우에는 폴더를 삭제할 수도 없습니다.
답변1
혼자가 아니야 chmod
. 다음을 사용해야 합니다 find
.
find some_dir -name '.?*' -prune -o -exec chmod 755 {} +
또는 zsh
(또는 ksh93 -G
, 또는 tcsh
뒤에 set globstar
) 와일드카드를 사용합니다.
chmod 755 -- some_dir some_dir/**/*
fish
( 또는 을 사용하여 이 작업을 수행 할 수도 있지만 4.3 이전 버전 bash -O globstar
에 유의하고 디렉터리를 내림차순으로 이동할 때 심볼릭 링크를 따라야 합니다. 디렉터리에 대한 심볼릭 링크에서 파일을 가져올 수는 있지만 디렉터리의 하위 디렉터리에 있는 파일을 검색할 수는 없으므로 bash 4.3에서는 부분적으로 수정되었습니다. 디렉토리는 4.2와 동일하며 5.0에서 완전히 수정되었습니다.)bash
fish
모든 파일을 실행 가능하게 만드시겠습니까?
답변2
다음 명령을 사용해보십시오. 훌륭하게 작동합니다.
find path| sed -n '/^\.\/\./!p'|awk '{print "chmod -R" " " "755" " " $1}'|sh
답변3
find /Your/Folder -type d -regextype posix-extended -regex ^[^\.].*$ -exec chmod -R 755 {}
^[^\.]
: 점으로 시작하는 모든 파일 이름을 제외합니다.