特定の名前のすべてのフォルダーを検索しようとしています。コマンド find /path/to/look/in/ -type d | でこれを行うことができます。grep .texturedata
特定のディレクトリ名を探すためにをgrep
出力する必要はありません。のオプションは同じ仕事をします。find
-name
find
find /path/to/look/in/ -type d -name '.texturedata'
.texturedata で止めてほしい
-prune
オプションはこの要件に非常に適しています
find /path/to/look/in/ -type d -name '.texturedata' -prune
私はこれらのパスを何百も持っており、grep の出力を chmod 000 にパイプしてそれらをロックしたいと考えています。
オプションで使っfind
てみる-exec
find /path/to/look/in/ -type d -name '.texturedata' -exec chmod 000 {} \; -prune
find
より効率的なアプローチは、 usingの出力をパイプすることですxargs
find /path/to/look/in/ -type d -name '.texturedata' -prune -print0 | xargs -0 chmod 000
テスト
$ tree -pa
.
|-- [drwxrwxrwx] .texturedata
| `-- [drwxrwxrwx] .texturedata
|-- [drwxrwxrwx] dir1
| |-- [drwxrwxrwx] .texturedata
| | `-- [-rwxrwxrwx] file2
| `-- [drwxrwxrwx] dir11
| `-- [-rwxrwxrwx] file111
|-- [drwxrwxrwx] dir2
| `-- [drwxrwxrwx] .texturedata
| `-- [-rwxrwxrwx] file3
|-- [drwxrwxrwx] dir3
| `-- [-rwxrwxrwx] file4
`-- [-rwxrwxrwx] file1
8 directories, 5 files
$ find . -type d -name '.texturedata' -prune -print0 | xargs -0 chmod 000
$ tree -pa
.
|-- [d---------] .texturedata [error opening dir]
|-- [drwxrwxrwx] dir1
| |-- [d---------] .texturedata [error opening dir]
| `-- [drwxrwxrwx] dir11
| `-- [-rwxrwxrwx] file111
|-- [drwxrwxrwx] dir2
| `-- [d---------] .texturedata [error opening dir]
|-- [drwxrwxrwx] dir3
| `-- [-rwxrwxrwx] file4
`-- [-rwxrwxrwx] file1
7 directories, 3 files