我很难在当前目录及其子目录中找到find个匹配项.

当我运行find *test.c时,它只给出当前目录中的匹配项.(不在子目录中查找)

如果我try find . -name *test.c,我会期望得到相同的结果,但它只提供子目录中的匹配项.当工作目录中有应该匹配的文件时,它会给我:find: paths must precede expression: mytest.c

这个错误是什么意思?如何从当前目录及其子目录中获取匹配项?

推荐答案

试着把它放在引号里——你正在运行shell的通配符扩展,所以你真正传递给查找的东西会是这样的:

find . -name bobtest.c cattest.c snowtest.c

...导致语法错误.所以试试这个:

find . -name '*test.c'

注意文件表达式周围的单引号——这将阻止shell(bash)扩展通配符.

Linux相关问答推荐

Linux/gcc中的文件创建时间系统调用

在shell 中使用排除模式的grep

Linux和Windows x86程序集调用约定

在不影响ROS2安装的情况下更新Ubuntu Linux中的CMake

pci_user_write_config_word在哪里实现?

变量在vim中打印良好,但在bashshell中打印不好,这怎么可能发生?

在 bash 中使用 tee 时如何返回错误代码

如何在具有多种可能性的linux shell中获取最大值和最小值?

+后移动下一行到当前行

Google Cloud Ops Agent Mongo 集成错误 - AuthenticationFailed:SCRAM 身份验证失败,storedKey 不匹配

构建 python 映像时 Docker compose 问题,访问被拒绝或存储库不存在

如何在 linux 上为 JNI 应用程序编译动态库?

从 shell 将多个 .sql 转储文件导入 mysql 数据库

在使用文件时截断文件 (Linux)

nvm:无法卸载当前活动的 node 版本

scp 使用私钥身份验证将目录复制到另一台服务器

在文件夹中的 gzip 文件中查找字符串

如何自动化 HTML 到 PDF 的转换?

我可以使用 awk 将所有小写字母转换为大写吗?

将 BlueZ Stack 用作外设(广告商)