有没有办法recursion查找用户拥有的所有文件,并将其更改为Gnu / Linux中的另一个用户/组?
我认为必须有一些魔术一class,但我的命令行魔术技能不达标:)
谢谢!
使用find命令和-user选项。 就像是:
find / -user john
最终会打开用户“john”拥有的所有文件。
如果你想改变他们的所有权(我会运行find没有执行,以确保你有你想要的名单),然后像这样:
find / -user john -exec chown harry {} \;
会做的。
这是迟到,但今天我偶然发现这个问题,因为我的rsync没有--usermap选项。
我的chown (v。chown(GNU coreutils)8.13)提供了一个内置的recursion( -R )和一个--from选项,所以你的(和我的)问题也可以用
chown -R --from=john harry /
更具体地说,我正在将OpenSuse服务器迁移到debian,并且在发行版中,apache2的用户和组是不同的。 在OpenSuse中,用户wwwrun (id:30)和group www (id:8) ,在debian www-data (id: 33)中都是。 我使用复制文件之后
rsync -az /path/to/files me@debian:/path/to/
我用了
chown -R --from=30 33 /path/to/files/ chown -R --from=:8 :33 /path/to/files/
在目标(debian)机器上。
注意: rsync version 3.1.0 protocol version 31有上面提到的 – 用户--usermap所以如果我有,我可以用一个命令在源机器上完成所有三个步骤:
rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/