我有以下目录树。
当向/从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
答案 0 :(得分:2)
您不需要xargs。 find有exec, execdir
和ok
内置选项:
find ~/dotfiles -name "*.rb" -exec chmod 644 {} +
execdir
执行文件所在的子目录中的命令,ok
要求确认。您可以使用\;
或+
结束命令,加号将同时执行多个文件,这有时会获得更多性能,但通常不相关,有时可能会损害性能,甚至无法工作(如果底层命令不允许处理多个文件)。
答案 1 :(得分:1)
我不知道ack
是什么,但您可以使用标准的shell命令来执行此操作:
find <top of directory tree> -name \*.rb | xargs chmod 644