すべてのサブディレクトリのすべての所有者を一覧表示し、各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
。