我正在将一个用户的主目录复制到用户 #2 的主目录,因此需要将内容的所有权转让给新用户。运行:
find /home/user2 -user user1 -exec chown user2 '{}' \;
find /home/user2 -group user1 -exec chgrp user2 '{}' \;
运行正常,但(我猜是因为 ./.. 文件)不知何故 root/
被改成了 user2。但是,/home
仍归 root:root 所有。
我如何确定 find 会做什么?如何限制它向上移动树(朝向根目录),甚至在它修改工作目录本身之前停止它?
答案1
当我这样做时,find /home/$user
它不会上升到树上。您可以将可操作的参数从命令中移除,find
以查看将替换到花括号中的内容。
如果 home 是它自己的文件系统(可能应该是),则您可以使用-xdev
它来不遍历其他文件系统。此外,-H
它还告诉find
不要遵循符号链接。
话虽如此,为什么不呢chown -R user2:user2 /home/user2
?