不久前,我们将服务从旧的 CentOs 安装迁移到 RedHat。此过程的一部分是将/home
目录复制到新安装。
新的 RedHat 安装的用户数量少于旧的 CentOs 安装的用户数量。我们希望将/home
目录中没有用户的任何目录移动到/home/abandoned
.
如何才能做到这一点?
我想通过一次手术完成它。该/home/abandoned
目录只是临时的。一旦我们确定不需要所有非用户目录,我们最终将删除该目录
这将是一次性过程,因此不必非常灵活或漂亮。
编辑
我相信以下内容会起作用,但如果没有这里的人们的一些意见,我不想运行它。这看起来可以接受吗?find /home -maxdepth 1 -nouser -type d -exec mv {} /home/abandoned/. \;
/编辑
答案1
请不要忘记 cd 到 home,您绝对不想从 / 运行最后一个命令。
列出所有没有用户的目录:
cd /home ; find -type d -maxdepth 1 -nouser
危险的检查后移动它们:
cd /home ; mkdir abandoned; find -type d -maxdepth 1 -nouser -exec mv -iv \{\} 'abandoned' \;
答案2
通常,用户的 /home 目录以用户的用户名命名。作为简单的初步检查,您可以根据 /etc/passwd 中的用户名检查 /home 中的目录名称。如果您在 /etc/passwd 中没有找到匹配的记录,那么您可以使用 find 命令的 -nouser 参数进一步验证您的决策过程。