은 왜 644 ABD 모든 파일을 변경하려고이 작업은 모든되지 않습니다찾기. -t f -exec chmod 644 {}; -d 755에
find . -type f -exec chmod 644 {} ;
내가 얻을 : 찾을 :`간부 ' 덕분에 인수 누락
은 왜 644 ABD 모든 파일을 변경하려고이 작업은 모든되지 않습니다찾기. -t f -exec chmod 644 {}; -d 755에
find . -type f -exec chmod 644 {} ;
내가 얻을 : 찾을 :`간부 ' 덕분에 인수 누락
좋은 대안은 이것이다 :
find . -type d | xargs chmod -v 755
:
find . -type f | xargs chmod -v 644
및 디렉토리
16,와 더 명시합니다 : xargs를에
find . -type f | xargs -I{} chmod -v 644 {}
배관은 발견의 내부에서 수행 할 수있는 그 일의 더러운 방법입니다.
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
당신과 같은 다른 옵션으로 제어 훨씬 더 될 수 있습니다
find . -type d -user harry -exec chown daisy {} \;
당신은 발견에 아주 멋진 일을 할 수 있으며, 당신이 너무 매우 위험한 일을 할 수 있습니다. "man find"를 보아도 길지만 길게 읽을 가치가 있습니다. 그리고 언제나처럼 기억하십시오 :
chmodf() {
find $2 -type f -exec chmod $1 {} \;
}
chmodd() {
find $2 -type d -exec chmod $1 {} \;
}
는 지금이 바로 가기를 사용할 수 있습니다 :
왜 xargs 방법이 "더러운 방법"이 될까요? 모든 파일을 인수로 사용하여 chmod를 한 번만 실행하면 큰 이점이 있습니다. "-exec chmod"메소드는 파일 당 서브 프로세스를 작성합니다. –
chmod를 한 번만 실행하려면 'find'로 변경하십시오. -type f -exec chmod 0644 {} +'이것은 xargs 메소드와 본질적으로 동일하며 하나의 명령 행을 빌드합니다. (\는 세미콜론 만 이스케이프합니다.) – johnthacker
빠른 oneliner :'find. -t d -exec chmod 0755 {} \; && 찾기. -t f -exec chmod 0644 {} \;' – lucaferrario
나는 자주 내 ~/.bashrc
파일에 함수를 만든이 필요`\로 종료
chmodd 0775 .
chmodf 0664 .
을,'하지으로' ; '혼자. –
...'-exec' 다음의 모든 것이 인수로 처리되기 때문입니다. 만약 당신이 베어가 있다면';'그것은'find' 전체에 대한 종결 자로 취급 될 것입니다,하지만 정말로'exec'를 종결 할 필요가 있습니다. 그래서 그것은 인수 문자열의 일부로 이스케이프되어야합니다. –
가능한 [폴더 및 모든 하위 폴더 및 Linux 우분투 터미널의 파일에 대해 chmod를 설정하는 방법?] (http://stackoverflow.com/questions/3740152/how-to-set-chmod-for-a- files-in-linux-ubunt) –