AIX에는 다음과 같은 디렉토리 구조가 있습니다.
codeRepo/REPO1/AREA1/objects
codeRepo/REPO1/AREA2/SUBAREA1/objects
codeRepo/REPO1/AREA2/SUBAREA2/objects
codeRepo에서 트리의 chown myUser *
모든 디렉토리에서 실행 하고 싶습니다. objects
보시다시피, 위치마다 다른 개체 디렉터리가 있습니다.
답변1
서브파일이 아닌 디렉토리만 삭제하려면 find -exec
다음과 같이 를 사용하세요.
find -type d -name objects -exec chown myUser {} \;
이렇게 하십시오:
-type d
디렉터리만 선택
-name objects
정확히 "object"라는 이름의 디렉터리만 찾습니다. 발견된 각 경로에 대해 -exec chown myUser {} \;
다음을 수행합니다 chown myUser {}
({}를 경로로 교체).
chown
내부의 모든 파일 chown
도 삭제하려면 chown -R
.
답변2
당신은 자신의 질문에 거의 대답했습니다. 대답은 재귀 옵션 -R을 사용하는 것입니다.
명령 실행sudo chown -R 리치 코드Repo/(사용자 이름이 richie라고 가정)
이렇게 하면 모든 파일/폴더를 소유자로 재귀적으로 설정하지만 가능한 한 트리 위쪽으로 설정하므로 더 많은 파일/폴더가 소유자로 지정됩니다.강력한방법.
답변3
bash
옵션을 사용하여 globstar
원하는 깊이로 이동하세요 **
.
언제 codeRepo
:
shopt -s globstar
chown myUser REPO1/AREA*/**/objects
AREA
정확성을 위해 이름 뒤에 숫자(문자)가 하나만 있는 경우 ?
단일 문자를 나타내는 데 사용합니다.
chown myUser REPO1/AREA?/**/objects
마찬가지로 두 문자의 경우:
chown myUser REPO1/AREA??/**/objects