用于查找无主文件的Shell脚本

时间:2014-07-09 14:06:51

标签: bash shell unix solaris solaris-10

我试图找出如何编写Solaris 10的shell脚本,该脚本使用if语句查找包装盒上的所有无主文件,打印文件名和位置,如果它们是无主的,则将它们分配给根所有者。

一般的unix和shell脚本都相当新。

请帮忙。

1 个答案:

答案 0 :(得分:3)

这样的事情应该有效:

find / -nouser -exec echo chown root '{}' \;

对输出感到满意后,从上面的行中删除echo并重新运行。

解析上面的命令:

  • find - 您正在执行的命令
  • / - 开始在/查找文件(所以查看所有文件)
  • -nouser - 仅查找数字用户ID在/etc/passwd
  • 中没有相应条目的文件
  • -exec - 根据以前的条件对我们找到的所有文件运行以下命令
  • echo chown root '{}' \; - 为每个匹配的文件运行的命令。 {}已替换为完整文件名,;已转义,以便find看到它而不是shell将其视为命令结束标记。

echo就在那里,以便您可以在运行可能会搞砸的chown命令之前验证是否会运行相应的命令。

所以你运行上面一次,确保它打印出来的命令是好的,然后你重新运行上面的find命令,但你删除echo以便chown实际上是执行而不是仅仅打印出来。