2010-05-03 1 views
1

다음 디렉토리 트리가 있습니다.단일 확인 명령을 사용하여 하위 디렉토리에 중첩 된 파일에 대한 사용 권한을 변경하는 방법은 무엇입니까?

VirutalBox로 /에서 이동하면 파일 권한이 변경됩니다. 그래서, 알고/그 ack 재귀 적으로 명령 줄에서 할 수 있습니다.

ack에서 chmod 644까지의 모든 명령을 *.rb 개의 파일로 표시 할 수 있습니까?

[~/dotfiles (master)⚡] ➔ tree 
. 
|-- cap_bash_autocomplete.rb 
|-- dotfile_bash_aliases 
|-- dotfile_bashrc 
|-- rake_bash_autocomplete 
|-- tidbits 
| |-- README 
| |-- lib 
| | `-- aliasdir.rb 
| |-- mhsrc 
| |-- proxy.pac 
| |-- rails-template.rb 
| `-- tasks.thor 
`-- usage 

답변

1

나는 무엇 ack 아무 생각이 없다, 그러나 당신은 표준 쉘 명령으로 작업을 수행 할 수 있습니다 당신은 xargs를 필요하지 않습니다

find <top of directory tree> -name \*.rb | xargs chmod 644 
+0

나는 그것을 시도 할 것이다. 그리고 btw, 여기에 무슨 ack입니다 http://www.fosscasts.com/screencasts/15-Power-Searching-with-Ack – Autodidact

+0

나는 노력했다. 그거야. 감사. 이제 또 다른 상황이 있습니다. 만약 내가 어떤 디렉토리를 버리면 어떨까요? – Autodidact

+0

'find ~/dotfiles -wholename '~/dotfiles/skip'-prune -o -name "* .rb | -exec chmod 644 {} +"'추가 정보를 얻기 위해 man find를 읽고 다음과 같이 답을 표시 할 수 있습니다. 다른 사람들을 안내하기 위해 도움이되는 (화살표를 클릭). –

2

.

find ~/dotfiles -name "*.rb" -exec chmod 644 {} + 

execdir이 하위 디렉토리, 파일이 앉아있는 곳, ok가 확인을 요청에서 명령을 실행 : 발견은 옵션 exec, execdirok 내장이있다. \; 또는 +과 같이 명령을 끝내면 더 많은 성능을 얻을 수 있지만 종종 관련이 없으며 때로는 성능에 해를 끼치거나 작동하지 않을 수도 있습니다 (기본 명령이 허용하지 않는 경우) 여러 파일의 처리).

+0

재미 있고 유용합니다. 아직도 리눅스 커맨드 체인 (command chaining)에 대한 내 머리를 감쌀 수는 없으므로이 사실을 알고 있으면 편리합니다. 감사! –

+0

체인이 그리 어렵지 않습니다 - 단지'a | b | c | d' - 그게 다야. :) –