我正在尝试查找具有特定名称的所有文件夹。我可以使用命令 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
with-exec
选项
find /path/to/look/in/ -type d -name '.texturedata' -exec chmod 000 {} \; -prune
更有效的方法是find
使用管道输出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