Linux find命令明白了吗?

Linux find命令明白了吗?,find,Find,您好,我正在尝试在一个find命令中查找所有js&css文件。我尝试了以下所有方法,但都没有成功: find WebContent -name "*.[jc]ss?" find WebContent -name "*.[jc]ss{0,1}" find WebContent -name "*.[jc][s]{1,2}$" find WebContent -name "*.[jc]s{1,2}" find WebContent -name "*.[jc]s[s]?" 现在呢???-nam

您好,我正在尝试在一个find命令中查找所有js&css文件。我尝试了以下所有方法,但都没有成功:

find WebContent -name "*.[jc]ss?"

find WebContent -name "*.[jc]ss{0,1}"

find WebContent -name "*.[jc][s]{1,2}$"

find WebContent -name "*.[jc]s{1,2}"

find WebContent -name "*.[jc]s[s]?"

现在呢???

-name
接受的参数是非正则表达式。如果您想使用正则表达式,可以使用
-regex
,但是
-o
选项(意思是“或”)可能是最简单的解决方案:

find WebContent -name "*.js" -o -name "*.css"
试试这个

find WebContent -regextype posix-extended -regex '.*\.(css|js)$'

您可以使用find执行布尔表达式-o代表或

find -name "*.js" -o -name "*.cpp"

使用
-iname
选项,不区分大小写

find WebContent \( -iname "*.js" -o -iname "*.css" \)

-1:您需要引用或转义那些
*
s,例如
find-name\\\*.js-o-name\\*.cpp
find-name“*.js”-o-name“*.cpp”
@Omry:它会在当前目录中找到匹配的文件,但不会在子目录中找到,因为glob会立即展开-试试看it@Paul:它也“有效”如果您在当前目录中没有.js和.css文件,因为glob会扩展到它自己的.Joachim,那么您刚才为我回答了一个长期存在的问题:为什么bash中的unquoted*有时有效,有时无效。我怀疑它与当前目录中的文件有关,但不知道在这种情况下它会扩展到自身(在我看来,这是一件愚蠢的事情,它应该扩展到一个空字符串)。它不会扩展到自身,因为如果没有匹配,它根本就不会扩展-您可以通过尝试“rm.asdf”之类的东西来查看行为,它将尝试删除名为“.asdf”的文件。多亏了这些,我想我只是在尝试使用reg exps深入了解它的工作情况。我使用以下方法实现了它:findWebContent-typef(-name.css)-o-name.js)