为什么文件打印两次?
find . *.{h,cc} -maxdepth 1 -type f
./file7.h
./file8.h
./file9.cc
file7.h
file8.h
file9.cc
这是对的吗?如何指定文件模式?
答案 0 :(得分:4)
它有两次,因为它首先在.
下找到它,然后在给find
作为搜索地点的实际文件名下找到它。也许你打算在逃避通配符时使用-name
。
答案 1 :(得分:2)
find . -maxdepth 1 \( -name \*.h -o -name \*.cc \) -type f
答案 2 :(得分:1)
如果您只是在当前目录中查找文件,为什么不简单地使用:
$ shopt -s expglob
$ ls *.*(h|cc) */*.*(h|cc)
否则,你必须做点什么:
$ find . -maxdepth 1 -type f \( -name "*.h" -o -name "*.cc" \)
使用括号将执行或首先,然后将其与-type f和-maxdepth组合。
答案 3 :(得分:0)
find . -name *.h -o -name *.cc -maxdepth 1 -type f
答案 4 :(得分:0)
find *.{h,cpp} -maxdepth 1 -type f
这可能有所帮助。