누구든지 전체 디렉토리 구조(현재 작업 디렉토리에서 시작하거나 시작할 위치에 대한 필수 매개변수 제공)를 재귀적으로 탐색할 수 있는 쉘 스크립트 작성을 위한 코드나 튜토리얼을 알려줄 수 있습니까?
- 항목이 디렉터리인지 여부를 결정하고, 그렇다면
chmod 755
디렉터리인지, 아니면... - 항목이 파일(디렉토리가 아님)인지 여부와
chmod 644
그것이 무엇인지 결정합니다.
Ubuntu, Debian, RHEL 기반 등과의 호환성을 찾고 있으므로 특정 언어로 태그하지 않겠습니다. 나는 Bash에서 이 작업을 수행하고 싶었지만 ZSH 스크립트가 있으면 그것도 작동할 것입니다.
답변1
나는 이 명령줄에 익숙합니다(현재 작업 디렉터리에서 시작하여 반복됩니다).
find . -type d -exec chmod 0755 '{}' + -or -type f -exec chmod 0644 '{}' +
설명하다:
find . # starting in curdir find
-type d # any directory
-exec chmod 0755 '{}' # and chmod it to 755
+ # (variant of -exec look find man page)
-or # or
-type f # any file
-exec chmod 0644 '{}' # and chmod it to 644
+ # (as above)
답변2
간단한 대답:
chmod -R a+rX .
+X
(대문자 X 참고)는 사용자에게 실행 권한이 이미 있는 경우 실행 권한이 부여됨을 의미합니다. 디렉터리 트리에 소유자에 대한 올바른 권한이 있고 모든 사람이 해당 트리에 액세스할 수 있도록 하려면 이것이 올바른 명령입니다. 디렉터리를 전역적으로 실행 가능하게 만들 뿐만 아니라 파일도 실행 가능하게 만듭니다.
쓰기 권한을 소유자에게만 재설정하고 setuid/setgid 비트를 지우려면 다음을 수행하십시오.
chmod -R a-ws,u+w,a+rX .
파일을 실행 가능하게 만들고 싶지 않으면 두 줄의 코드와 함께 zsh를 사용해야 합니다.
chmod 755 **/*(/)
chmod 644 **/*(.)