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確認を求めます。コマンドを\;または+で終了すると、plusは一度に複数のファイルを実行します。これにより、パフォーマンスが向上する場合がありますが、関連性がない場合があり、パフォーマンスが低下したり、機能しなくなったりする場合があります(基になるコマンドで複数のファイル)。

于 2010-05-10T18:13:40.007 に答える
1

何が何だかわかりackませんが、標準のシェル コマンドで実行できます。

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