특정 사용자가 소유 한 모든 파일을 재귀 적으로 숨 깁니다 사용자로 여러

특정 사용자가 소유 한 모든 파일을 찾아서 숨길 수 있습니까? 잘못된 사용자로 여러 가지 작업을 수행했으며 파일의 올바른 소유권을 부여해야합니다.

많은 파일과 디렉토리를 숨길 수있는 재귀적이고 조건적인 방법이 있습니까?



답변

이 휴대용 찾기 명령을 이와 같은 것으로 사용할 수 있습니다.

find . -user old-user -exec chown new-user:new-group {} \;

-iname 옵션을 사용하여 특정 파일을 찾으려면이를 확장 할 수 있습니다 (POSIX는 아니지만 OSX에서 사용 가능)

find . -iname '*.html' -user www-data -exec chown www-data:www-data {} \;

. 는 현재 폴더와 아래를 나타내므로 특정 경로를 기본으로 사용할 수 있습니다.

find /var/www/ -iname '*.html' -user www-data -exec chown www-data:www-data {} \;

답변

당신이 사용할 수있는

chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group  *

매뉴얼에서 chown --help:

  --from=CURRENT_OWNER:CURRENT_GROUP
                     change the owner and/or group of each file only if
                     its current owner and/or group match those specified
                     here.  Either may be omitted, in which case a match
                     is not required for the omitted attribute.

편집 : 물론 이것은 리눅스 와 대부분의 UNI 에서만 작동합니다 . OSX (BSD 기반)는 @StephenTrapped 솔루션을 참조하십시오.


답변

-h대한 Chown의 옵션은 심볼릭 링크 파일 자체뿐 아니라 대상의 권한을 변경합니다.

symoblic 링크를 사용하여 버전 간을 전환하는 소프트웨어 바이너리 폴더에서이 작업을 수행 할 때 중요 할 수 있습니다.

find . -user old-user -exec chown -h new-user:new-group {} \;