chmod 특정 사용자가 만든 모든 폴더

chmod 특정 사용자가 만든 모든 폴더

다음과 같은 폴더 구조가 있다고 가정해 보겠습니다.

folder/
├─ subfodler_2/     #User1
├─ subfolder_3/     #User2
├─ subfolder_1/     #User1

chmod777이 만든 모든 폴더(및 파일)를 원합니다 .User1

파일을 가져올 수 없다는 것을 알고 있습니다.

ls -la | grep User1

특정 폴더에 액세스하는 방법을 알고 있지만 "ie의 출력을 사용"하여 구문 분석하는 chmod방법을 모르겠습니다 .lschmod

한 줄씩 작성할 필요가 없도록 bash 스크립트로 작성할 수 있다면 좋을 것입니다.

답변1

find이를 사용하여 특정 파일을 검색 할 수 있습니다 . -user User1결과는 User1이 소유한 항목만 표시하도록 필터링됩니다.

-exec그런 다음 다음을 사용하여 이러한 파일에 대해 명령을 실행할 수 있습니다.

find folder -user User1 -exec chmod 777 {} +

실행 가능한 파일이 없다면(PDF 라이브러리에서 이 작업을 수행할 수도 있음) 777이 가장 깨끗한 솔루션이 아닐 수 있습니다. 이 경우 이 작업을 수행하여 디렉터리를 전역적으로 읽기/쓰기/실행 가능하게 만들 수 있지만 파일은 전역적으로 읽기/쓰기만 가능합니다.

find folder -user User1 -type d -exec chmod 777 {} +
find folder -user User1 -type f -exec chmod 666 {} +

귀하의 원래 질문은 parsing 에 대해 묻습니다 ls. 이렇게 하면 안 됩니다. 이 문제에 대한 추가 자료:

왜 `ls`를 구문 분석하지 *않나요*(그리고 어떻게 수행합니까)?

관련 정보