我想创建一个脚本,列出所有子目录的所有所有者,然后检查每个 ID(如果我有权访问 ID 的 sesu)。
**$**ls -lrth /apps/wldomains | grep '^d' | awk '{ print $3 }'
userid1
userid2
userid3
userid4
.
.
.
**$**sesu - userid1
Please enter your password:
**userid1@SERVER:$**sesu - userid2
Please enter your password:
**userid2@SERVER:$**sesu - userid3
.
.
.
.
答案1
使用 awk 的 printf 功能,然后通过管道传输到 ksh。
ls -lrth /apps/wldomains | awk '$1 ~/^d/ { printf "sesu %s\n", $3 }'
应该生成
sesu userid1
sesu userid2
sesu userid3
sesu userid4
| ksh
确定后只需添加
ls -lrth /apps/wldomains | awk '$1 ~/^d/ { printf "sesu %s\n", $3 }'| ksh
- 我也压缩
grep | awk
了awk
答案2
find /apps/wldomains -type d -exec stat -c %U {} \; | sort -u | xargs -n 1 sesu -
find /apps/wldomains -type d
将找到下面的所有目录/apps/wldomains
(包括/apps/wldomains
其本身)。stat -c %U
将输出找到的目录所有者的用户名。sort -u
将获取这些用户名并将它们排序到不同用户名的列表中。xargs -n 1 sesu -
将获取此列表并sesu -
为每个列表执行。
在 Solaris 上,安装 GNU coreutils 软件包并gstat
使用stat
.