![찾기를 사용하여 권한을 설정할 때 디렉터리를 건너뛰는 방법은 무엇입니까?](https://linux55.com/image/100830/%EC%B0%BE%EA%B8%B0%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EA%B6%8C%ED%95%9C%EC%9D%84%20%EC%84%A4%EC%A0%95%ED%95%A0%20%EB%95%8C%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%EA%B1%B4%EB%84%88%EB%9B%B0%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
phpStorm 프로젝트에 속하는 /sources
디렉터리 가 있습니다 . .idea
이 디렉터리는 Docker 컨테이너( )로 설치됩니다 /sources
. 컨테이너가 시작될 때 실행되는 스크립트가 있는데, 이 스크립트는 다음과 같은 일부 권한을 설정합니다.VOLUME
~/sources:/var/www
chown -R www-data:www-data /var/www/sources && find /var/www/sources -type d -print0 | xargs -0
chmod 2775 && find /var/www/sources -type f -print0 | xargs -0 chmod 0664
또한 이러한 권한은 .idea
phpStorm이 폴더에 액세스하는 것을 방지하므로 해당 폴더에 쓸 수 없습니다.
프로젝트를 저장할 수 없습니다: 프로젝트 파일을 저장할 수 없습니다. 프로젝트 파일이 쓰기 가능하고 해당 파일을 수정할 수 있는 권한이 있는지 확인하세요.
나는 몇 가지 게시물을 읽었습니다.
- https://stackoverflow.com/questions/4210042/exclude-directory-from-find-command
- https://stackoverflow.com/questions/2065447/how-do-i-exclude-a-folder-when-performing-file-Operations-ie-cp-mv-rm-and-ch
- https://stackoverflow.com/questions/1163294/changing-chmod-for-files-but-not-directories
그러나 해결책은 나와 약간 다릅니다. .idea
위 명령문을 사용하여 디렉토리를 어떻게 건너뛸 수 있습니까 ?
답변1
/var/www/sources/.idea
이 디렉터리 와 그 안의 모든 항목을 제외하려면 다음을 수행하세요 .
find /var/www/sources -type d -not -path '/var/www/sources/.idea*' -exec chmod 0755 {} +
find /var/www/sources -type f -not -path '/var/www/sources/.idea*' -exec chmod 0644 {} +