모든 하위 디렉토리에서만 chmod 파일


54

누군가 chmod를 도와주세요. 다음 파일 구조가 있습니다.

-dir1
--file1
--file2
--dir1a
---file1a1
---file1a2
--dir1b
---file1b1
---file1b2

dir1 아래의 모든 파일과 모든 하위 디렉토리에 어떻게 chmod 655 를 사용합니까? 따라서 모든 파일은 655 권한을 가지며 모든 디렉토리는 그대로 유지됩니다.

감사합니다

답변:


108

더 나은 사용

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

@sagarchalise의 다른 제안 된 솔루션은 파일 이름에 공백이 있거나 대시로 시작하면 작동하지 않습니다.


16
특히, 모든 디렉토리를 chmod하기 find . -type d -exec chmod 755 {} +위해 모든 디렉토리를 755로 변경 하는 데 사용할 수 있습니다 .
Kris Harper

2
+는 무엇입니까?
Brettski

3
@Brettski : +부호가 find파일 경로 목록 (또는 너무 긴 경우 그 일부)으로 확장됩니다.
enzotib 2012 년

3
무엇을위한 것입니까?
Orient

2
--명령 행 옵션의 끝을 나타냅니다. 이렇게하면 하이픈으로 시작하는 파일이 명령 줄 옵션으로 해석되지 않습니다 --.
Tim Tisdall

8

내가 안으로가는 생각 dir1

find . -type f | xargs chmod 655

트릭을 할 것입니다.


이것도 작동하지만 "그런 파일이나 디렉토리가 없습니다"라는 경고가 표시됩니다.
netic

@manetic : 내 대답에서 말했듯이 공백이 포함 된 파일 이름에 따라 다릅니다.
enzotib

4
완전성을 위해 찾기로 변경하십시오. 유형 f -print0 | @enzotib의 답변이 더 간결하지만 xargs -0 chmod 655는 내가 믿는 공간 문제를 해결합니다.
Matt freake

매트 괴물이 말한 것
Sergiy Kolodyazhnyy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.