如何只查找给定目录中的文件,并使用bash忽略子目录

我看了其他类似的问题,但没有find一个使我能够在有限的时间内把握这个概念并使之适用于我的情况的问题。 我只是运行find命令来查找某些文件,但子目录中的某些文件具有我想忽略的相同名称。 谢谢你的帮助。 以下是我正在使用的命令:

我感兴趣的文件/模式:/ dev / abc-scanner,/ dev / abc-cash ….

命令:

find /dev/ -name 'abc-*' 

什么是返回:

 /dev/abc-scanner /dev/abc-cash ... ... ... /dev/.udev/names/abc-scanner /dev/.udev/names/abc-cash 

我想忽略后面的文件:/dev/.udev / …

如果你只是想限制发现到第一级,你可以做:

  find /dev -maxdepth 1 -name 'abc-*' 

…或者如果你特别想排除.udev目录,你可以这样做:

  find /dev -name '.udev' -prune -o -name 'abc-*' -print 

有没有什么特别的原因需要使用find ? 您可以使用ls来查找与目录中的模式匹配的文件。

 ls /dev/abc-* 

如果您确实需要使用find ,则可以使用-maxdepth 1开关仅应用于指定的目录。

这可能做你想做的事情:

 find /dev \( ! -name /dev -prune \) -type f -print