要查找当前目录及其子目录下所有 `.cpp` 文件,可以使用以下命令:
```bash
find . -name "*.cpp"
```
说明:
1. `find` 命令用于在目录树中查找文件。
2. `.` 表示当前目录作为起始路径。
3. `-name "*.cpp"` 指定查找以 `.cpp` 结尾的文件名模式(通配符 `*` 匹配任意字符序列)。
扩展功能:
递归查找:默认情况下,`find` 会递归搜索子目录中的文件。如果需要限制搜索范围,可以使用 `-maxdepth` 选项(例如 `-maxdepth 2` 仅搜索当前目录和直接子目录)。
条件过滤:可以使用逻辑运算符 `and`、`or`、`not` 进行复合条件过滤。例如,查找当前目录下所有以 `.cpp` 结尾且属于 `src` 目录的文件:
```bash
find src -name "*.cpp"
```
行号显示:结合 `grep` 命令可显示匹配行的行号。例如,查找包含 `test` 的行并显示行号:
```bash
find . -name "*.cpp" | xargs grep -rnw "test"
```
其中:
`-r`:递归搜索
`-n`:显示行号
`-w`:匹配整个单词(避免部分匹配)
通过以上方法,可以灵活地查找 `.cpp` 文件及其内容特征。