Linux 查找命令输出不一致,通配符工作不正常

Linux 查找命令输出不一致,通配符工作不正常,linux,bash,shell,find,Linux,Bash,Shell,Find,我正在使用find命令创建要用于分发包的文件列表。但是find无法获取所有文件的列表 下面是我的目录结构 . ├── 1.cpp ├── test │   └── 1.cpp └── test1 ├── 1.cpp └── test11 ├── 1.h └── 2.cpp 下面是命令及其输出(注意:它不会带来./test1/test11/2.cpp) $ find . -name *.cpp ./test/1.cpp ./1.cpp ./test1/1.cpp 但是,当我使用

我正在使用find命令创建要用于分发包的文件列表。但是find无法获取所有文件的列表

下面是我的目录结构

.
├── 1.cpp
├── test
│   └── 1.cpp
└── test1
├── 1.cpp
└── test11
    ├── 1.h
    └── 2.cpp
下面是命令及其输出(注意:它不会带来./test1/test11/2.cpp)

$ find . -name *.cpp
./test/1.cpp
./1.cpp
./test1/1.cpp
但是,当我使用特定的名称时,它能够找到该文件

$ find . -name 2.cpp
./test1/test11/2.cpp

这是因为
*.cpp
扩展为
1.cpp
,因为当前目录中存在匹配项,请使用引号
“*.cpp”
或escape star
\*.cpp
以避免展开,并将star literaly作为find的参数传递。

这是因为
*.cpp
被展开为
1.cpp
,因为当前目录中存在匹配项,请使用引号
“*.cpp”
或转义星号
\*.cpp
以避免展开,并将星号文字作为find的参数传递。

在搜索字符串
find中添加双引号-名称“*.cpp”

在搜索字符串中添加双引号
查找-名称“*.cpp”

您可以尝试此查找-名称“*.cpp”有效,谢谢。请添加答案。您可以尝试此查找-名称“*.cpp”有效,谢谢。请补充一个答案