joh*_*ohn 11 linux shell bash centos shell-scripting
有没有办法递归地查找用户拥有的所有文件并将它们更改为 Gnu/Linux 中的另一个用户/组?
我认为一定有一些神奇的单线,但我的命令行巫术技能达不到那个程度:)
谢谢!
cjc*_*cjc 15
使用find带有-user选项的命令。就像是:
find / -user john
最终将打开用户“john”拥有的所有文件。
如果你想改变他们的所有权(我会在find不执行的情况下运行以确保你有你想要的列表),然后是这样的:
find / -user john -exec chown harry {} \;
会做的。
小智 7
这已经晚了,但今天我偶然发现了这个问题,因为我rsync没有--usermap选择。
我的chown(v. chown (GNU coreutils) 8.13) 提供了一个内置的递归 ( -R) 和一个--from选项,所以你的(和我的)问题也可以使用
chown -R --from=john harry /
Run Code Online (Sandbox Code Playgroud)
wwwrun (id:30)和 group www (id:8),在 debianwww-data (id: 33)中都适用。在我使用复制文件后
rsync -az /path/to/files me@debian:/path/to/
Run Code Online (Sandbox Code Playgroud)
我用了
chown -R --from=30 33 /path/to/files/
chown -R --from=:8 :33 /path/to/files/
Run Code Online (Sandbox Code Playgroud)
在目标(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/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10762 次 |
| 最近记录: |