모든 하위 디렉터리의 모든 소유자를 나열한 다음 각 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
.