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

时间:2017-10-12 08:19:01

标签: linux bash shell 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

2 个答案:

答案 0 :(得分:1)

它因为*.cpp已扩展为1.cpp,因为当前目录中存在匹配使用引号"*.cpp"或转义星\*.cpp以避免扩展并通过明星文学作为寻找的论据。

答案 1 :(得分:1)

在搜索字符串find . -name "*.cpp"

中添加双引号