파일 소유자를 재귀적으로 변경하지만 디렉터리는 변경하지 않음

파일 소유자를 재귀적으로 변경하지만 디렉터리는 변경하지 않음

~50,000개의 디렉토리와 ~1m의 파일이 있는 디렉토리가 있습니다.

디렉토리가 아닌 모든 파일의 소유자(또는 권한)를 변경하고 싶습니다. 이는 원격 서버에서 추가 파일(~150k 디렉터리 및 ~3.6m 파일)을 SCP로 처리하려고 하기 때문입니다.

내가 가지고 있는 디렉토리는 원격 디렉토리의 일부이지만 scp가 실패했습니다...

SCP를 다시 실행하면 원격 디렉터리에서 이미 복사한 파일을 덮어쓰면서 다시 시작됩니다.

답변1

을 사용할 수 있으며 프로세스에서 find이 트리거되지 않는다는 추가 이점이 있습니다 . ARG_MAX상위 디렉토리에서:

find . -type f -exec chown newowner {} +

을 위한 chmod:

find . -type f -exec chmod 644 {} +

-type f파일만 됩니다 find.

답변2

또 다른 대안은 를 사용하는 것입니다 xargs. 다음 -print0옵션 find과 해당 -0옵션을 사용해야 합니다 xargs.

find . -type f -print0 | xargs -0 chown newuser:newgroup

에서 man find:

-인쇄0

표준 출력에 전체 파일 이름을 인쇄하고 그 뒤에널 문자. 이것줄 바꿈이나 다른 유형의 공백이 포함된 파일 이름을 허용합니다.찾기 출력을 처리하는 프로그램에서 올바르게 해석됩니다. 이 옵션은 xargs의 -0 옵션에 해당합니다.

xargs또한 올바르게 처리합니다 ARG_MAX.

관련 정보