我试图找出如何编写Solaris 10的shell脚本,该脚本使用if语句查找包装盒上的所有无主文件,打印文件名和位置,如果它们是无主的,则将它们分配给根所有者。
一般的unix和shell脚本都相当新。
请帮忙。
答案 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
实际上是执行而不是仅仅打印出来。