将一组文件分配给另一组

将一组文件分配给另一组

我想使用groupdel命令删除一个组,但在执行此操作之前,我想将属于该组的所有文件分配给另一个组,有没有办法做到这一点?

我知道我可以用来find / -gid group_id查找属于该组的文件,然后手动将它们分配给新组。我寻找一种自动完成任务的方法。

答案1

find / -group <groupname> -exec chown :<groupname> {} \+

应该可以解决问题。只需替换<groupname>为适当的名称即可。

find允许您使用主函数在它返回的文件上调用任意命令-exec。在这种情况下,正如我们所知,我们想要更改每个匹配文件的组所有权,我们可以简单地传递命令chown(以及任何参数 - 在这种情况下,是我们希望将匹配文件名转移到其所有权的组名,前面是:,它告诉chown将其视为组名而不是用户名)作为 的参数-exec。返回的文件名将find代替 插入到命令中{},并+;表明find它已到达外部命令的末尾,并且应将任何其他参数解析为自己的参数。使用\+而不是\;告诉 find 在每个命令中处理多个文件(因此效率更高)。

相关内容