2014-07-09 102 views
1

我想弄清楚如何编写Solaris 10的shell脚本,该脚本使用if语句查找框中的所有无主文件,打印文件名和位置并将它们分配给根所有者,如果他们是无主的。Shell脚本查找无主文件

在UNIX和shell脚本中使用unix是相当新的。

请帮忙。

回答

3

像这样的东西应该工作:

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

一旦你满意的输出,去掉上面,然后重新运行该行echo

解剖上面的命令:

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

echo是存在的,这样就可以验证适当的命令将可能运行chown命令可能搞砸之前运行。

所以你运行上面的一次,确保其打印出的命令是好的,然后重新运行上面的find命令,但你删除echo使chown的只是把打印出真正执行,而不是只。

+0

我将如何将它变成if语句 – user3508234

+1

您可以用您试图完成的任务更新您的问题吗? –

+0

我编辑它。谢谢 – user3508234