我正试图找出进行文件操作的通配符
出于测试目的,我将这些文件保存在一个目录中:
文件\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