2011-10-27 4 views
2

내 사이트의 모든 폴더에 대해 폴더 권한을 변경하려고하지만 파일은 변경하지 않으려 고합니다.폴더 권한 만 변경하면 Linux에있는 파일이 아닙니다.

나는 ls -l | egrep '^d'을 수행하여 해당 목록을 나열 할 수 있지만이 작업을 수행 할 수있는 방법이있다

:

chmod 751 | egrep '^d' chmod를 3 PARAMS을 기대하지만 난 그에게 egrep을의 결과를 제공하는 방법에 확실 해요, 나는 오류가 발생합니다 .

chmod 751 -R *.*을 사용하여 속이려고했으나 '.'이 (가) 몇 개의 폴더가 있습니다. 그래서 작동하지 않을 것입니다.

find . -type d -exec chmod 751 {} \; 

답변

11

나는이 작동합니다 생각

+2

명령이 재귀 적이며 subdirs에서도 실행됩니다 (OP의 예는 현재 디렉토리 만 처리 함). 현재 디렉토리로 제한하려면'--maxdepth' 옵션을 사용하십시오. –

0

당신은 당신이 항상 $() (또는 역 따옴표)에 포장 할 수 변경하려면 원하는 항목을 나열하는 방법을 가지고 그 비트가 먼저 실행 한하고 배치하는 경우 :

+0

'egrep'은 어떤 작업을하고 있습니까? –

+0

나는 그의 질문에서 그것을 가져 가고 있었지만 우연히 첫 번째 비트를 빠뜨렸다. – Thor84no

+0

또 다른 문제는 공백이있는 파일 이름을 제대로 처리하지 못하고 너무 많은 파일이있는 경우 "인수 목록이 너무 길다"라는 오류가 발생할 수 있다는 것입니다. –