find
GID 목록을 바꾸려는 명령이 있습니다 .
이것은 명령입니다:
find / -follow \( -group 39 -o -acl_group 39 \) -exec ls -ln {} \; 2> $HOME/error.39.log 1> $HOME/results.39.log
다음 내용이 포함된 파일도 있습니다.
3
100005
21
7
파일의 각 항목을 차례로 명령으로 대체하여 find
각 항목에 대해 별도의 출력 및 오류 파일이 생성되도록 하려면 어떻게 해야 합니까?
답변1
정보를 ls
얻기 위해 전화할 필요는 없습니다 . 이미 완료되었기 때문입니다. 다음과 같이 사용하십시오(output과 동일 ).stat
find
ls -ln
find -follow \( -group 39 -o -acl_group 39 \) -printf '%M %n %U %G %s %Cb %Cd %CH:%CM %p\n'
형식 지시문에 대한 자세한 내용은 GNU 찾기 매뉴얼의 섹션 3.2.2를 참조하세요.
편집하다
파일의 여러 그룹 ID에 적용하려면 다음을 수행하세요.
while read; do
find -follow \( -group $REPLY -o -acl_group $REPLY \) \
-printf '%M %n %U %G %s %Cb %Cd %CH:%CM %p\n' \
1> $HOME/results.$REPLY.log \
2> $HOME/error.$REPLY.log
done < group_id_file
답변2
for 문은 어떻습니까? 그것은 다음과 같습니다:
for f in `cat file_with_entries`; do
find -follow \( -group $f -o -acl_group $f \) -exec ls -ln {} \; 2> $HOME/error.$f.log 1> $HOME/results.$f.log
done