linux – 找到和ls的通配符
发布时间:2020-12-13 19:40:03 所属栏目:Linux 来源:网络整理
导读:我试图找出通配符进行文件操作. 我有一个目录中的这些文件用于测试目的: file_BSD.GIF file_linux.gif file_unix 看我的ls命令, $ls *{.GIF,.gif}file_BSD.GIF file_linux.gif 哪个可以 但是“查找”似乎没有同样的作用: $find -name *{.GIF,.gif}find: pa
我试图找出通配符进行文件操作.
我有一个目录中的这些文件用于测试目的: file_BSD.GIF file_linux.gif file_unix 看我的ls命令, $ls *{.GIF,.gif} file_BSD.GIF file_linux.gif 哪个可以 但是“查找”似乎没有同样的作用: $find -name *{.GIF,.gif} find: paths must precede expression: file_linux.gif Usage: 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抛出,找到-name * .GIF * .gif 然后进一步扩大到 find -name file_BSD.GIF file_linux.gif # as you have only these files in directory 现在这个-name file_BSD.GIF file_linux.gif被传递给find.这是错误的,因为没有像file_linux.gif这样的开关被find接受. 你需要的是这个命令. find -name '*.GIF' -or -name '*.gif' 哪个是相同的 find -iname '*.gif' 在这里注意单引号(‘).这意味着* .GIF应该被发送,没有任何shell扩展.并找到将使用它作为模式.这个单引号是必要的,除非你转义shell元字符.在这种情况下,命令看起来就像 find -iname *.gif (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |