使用 find 设置权限时如何跳过目录?

使用 find 设置权限时如何跳过目录?

我有一个目录/sources,里面是.idea属于 phpStorm 项目的目录。该目录作为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

这些权限也使.ideaphpStorm 无法访问该文件夹,因此无法在那里写入。

无法保存项目:无法保存项目文件。请确保项目文件可写并且您有权限修改它们。

我读过一些帖子:

但解决方案与我的略有不同。如何.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 {} +

相关内容