我试图编写一个bash脚本来找到用户早已删除的主目录,除了他们的配置文件(.bashrc,.bash_logout,.profile等等)之外什么都没有留下
我试过了
find . -type d -empty -print
但它只找到具有活动用户的真正空目录。我需要那些没有用户的目录,而且我不关心隐藏文件。我只关心文件夹中是否包含实际的用户文件。
感谢。
答案 0 :(得分:2)
find
有一个可能派上用场的选项:-nouser
。它与具有(数字)用户ID的文件匹配,该用户ID对应于/etc/passwd
中指定的无用户。例如,以下命令将打印/home
下不属于当前用户的所有目录:
find /home -mindepth 1 -maxdepth 1 -type d -nouser
编辑:如果您只想打印没有非隐藏文件的目录,可以按如下方式修改上述内容:
find /home -mindepth 1 -maxdepth 1 -type d -nouser -print0 |
while IFS= read -r -d '' dir; do
(($(ls "$dir" | wc -l) == 0)) && echo $dir
done