
모든 하위 디렉터리의 모든 소유자를 나열한 다음 해당 ID에 sesu에 액세스할 수 있는지 각 ID를 확인하는 스크립트를 만들고 싶습니다.
**$**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
.