移动不存在的用户的主目录?

移动不存在的用户的主目录?

不久前,我们将服务从旧的 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 参数进一步验证您的决策过程。

相关内容