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
4

2 回答 2

2

你不需要 xargs。find 有选项exec, execdirok内置:

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

execdir从文件所在的子目录执行命令,ok请求确认。\;您可以用or结束命令+,加号将一次执行多个文件,这有时会获得更高的性能,但通常不相关,有时可能会损害性能,甚至不起作用(如果底层命令不允许处理多个文件)。

于 2010-05-10T18:13:40.007 回答
1

我不知道是什么ack,但你可以使用标准的 shell 命令来做到这一点:

find <top of directory tree> -name \*.rb | xargs chmod 644
于 2010-05-03T17:38:52.200 回答