我想建立一個腳本,列出所有子目錄的所有擁有者,然後檢查每個 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
.