查找和查找的通配符

我正试图找出进行文件操作的通配符

出于测试目的,我将这些文件保存在一个目录中:

文件\u BSD.GIF文件\u linux.GIF文件\u unix

请看我的ls命令

$ls*{.GIF.GIF}
文件\u BSD.GIF文件\u linux.GIF

没关系

但“发现”似乎并不是以同样的方式工作:

$find-name*{.GIF.GIF}
查找:路径必须位于表达式:file_linux.gif之前
用法:find[-H][L][P][Olevel][D help | tree | search | stat | rates | opt | exec][path…][expression]

顺便说一下,我已经读到“-iname”应该同时定位大写和小写文件,但这似乎也不起作用:

$find-iname*.gif
./file_linux.gif

(这应该也能找到.GIF文件,对吧?)

find-name*{.GIF、.GIF}错误

此命令首先由shell扩展为find-name*.GIF*.GIF

然后进一步扩展到:

find-name文件\u BSD.GIF文件\u linux.GIF
#因为目录中只有这些文件

现在,这个-name文件\u BSD.GIF文件\u linux.GIF被传递到find。这是错误的,因为find不接受像file\u linux.gif这样的开关

你需要的是这个命令

查找-name'*.GIF'-或-name'*.GIF'

假设您希望以不区分大小写的方式收集.gif文件,则此find命令变为

find-iname'*.gif'

请注意此处的单引号()。这意味着应发送*.GIF以按原样查找,而无需任何shell扩展。find将使用此作为模式。除非转义shell元字符,否则此单引号是必需的。在这种情况下,命令看起来像

find-iname\*.gif

发表评论