find -name -exec
时间: 2024-06-12 22:10:25 浏览: 192
`find -name -exec` 是一个 Linux 命令,用于在指定目录下查找文件名符合条件的文件,并对查找到的文件执行指定的命令。
其中,`-name` 用于指定要查找的文件名,可以使用通配符进行模糊匹配;`-exec` 用于执行指定的命令,可以使用 `{}` 表示查找到的文件名。
例如,要在当前目录下查找所有以 `.txt` 结尾的文件,并将它们的内容输出到终端上,可以使用以下命令:
```
find . -name "*.txt" -exec cat {} \;
```
这个命令会在当前目录下查找所有以 `.txt` 结尾的文件,并对每个文件执行 `cat` 命令,将文件内容输出到终端上。
相关问题
find. -name '.svn' -prune -o -exec -cp --parent{}是什么意思
这是一个 `find` 命令的语句,用于在当前目录(`.`)下查找文件并执行命令。
具体解释如下:
- `-name '.svn' -prune` 表示查找名字为 `.svn` 的目录并排除它们,不再进入这些目录查找。
- `-o` 表示或者,连接两个表达式。
- `-exec` 表示对查找到的文件执行一个命令。
- `-cp` 表示将文件复制到指定目录,此处未给出要复制到哪个目录,因此需要完整的命令才能确定。
- `--parent` 表示复制文件时保留原文件的父目录结构。
因此,这个命令的作用是查找当前目录下除了名字为 `.svn` 的目录之外的所有文件,然后将它们复制到指定目录,并保留原文件的父目录结构。
find . -type d ! \( -name "保留1.txt" -o -name "保留2.jpg" -o -name "保留3.doc" \) -exec rm -r {} \;
这个命令可以用来删除当前目录下除了指定的几个文件以外的所有子目录。具体来说,这个命令使用了 `find` 命令来找到当前目录下所有文件夹,然后使用 `-type d` 选项来限制搜索结果只包括文件夹。
接着,使用 `!` 表示否定,即排除符合括号内条件的结果。括号内使用 `-name` 选项指定要保留的文件名,使用 `-o` 表示或者的关系。
最后,使用 `-exec` 选项来执行 `rm -r {}` 命令,其中 `{}` 表示 `find` 命令搜索到的每个文件夹名字,`\;` 表示命令执行结束。
因此,这个命令可以删除当前目录下除了指定的几个文件以外的所有子目录。但是需要注意,这个命令非常危险,因为误删文件夹可能会导致数据丢失,建议谨慎使用。
阅读全文