首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chmod和chown同时?

chmod和chown同时?
EN

Unix & Linux用户
提问于 2020-04-15 16:54:38
回答 2查看 4.2K关注 0票数 12

我正在运行一个脚本来修复rsync之后的文件所有权和权限。我想知道,除了完成任务的最佳方式之外,是否有一种同时运行chmodchown的方法?

在我的脚本的当前迭代中,我要对文件进行两次find处理。

代码语言:javascript
复制
find /var/www/mysite -exec chown  www-data:www-data {} \;
find /var/www/mysite -type f -exec chmod 775 {} \;

我想,如果我可以用一个命令同时更改权限和所有者/组,那就太好了。在进行了一些googling搜索之后,我惊讶地发现,这样的命令、参数或选项并不存在。

我是否可以同时更改权限和所有权,以避免对每个文件进行两次find处理?

编辑:社区编辑或帖子,或暗示这个问题是“使用1命令更改所有文件夹权限”的重复。这个问题不同,因为它要求同时更改权限和所有权,而不仅仅是权限。

EN

回答 2

Unix & Linux用户

发布于 2020-04-15 16:57:16

您可以传递多个exec命令:

代码语言:javascript
复制
find /var/www/mysite -exec chown www-data:www-data {} \; \
     -type f -exec chmod 775 {} \;
票数 18
EN

Unix & Linux用户

发布于 2020-04-16 02:32:30

为了完整起见,xargs也可以在管道中做各种有趣的事情。

代码语言:javascript
复制
find . -type f -print0 | xargs -0 -I VAR -- sh -c 'chmod 775 "VAR" && chown www-data:www-data "VAR" '

这会产生一个文件名流(而不是目录名),其中包含分隔符的空号,因此处理文件名中的空格。

-0告诉xargs分离空输入。

-I VAR说使用VAR作为“变量名”而不是{}

--和它之后的一切都是为每一行运行的

这可能更具可读性,但它将为双桶命令的每次运行启动一个新的shell。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/580271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档