繁体   English   中英

Linux / Unix查找命令

[英]Linux/Unix Find Command

  • 这很好用: find . -name "skr[0-9][0-9][0-9][0-9][0-9].rtf" -type f find . -name "skr[0-9][0-9][0-9][0-9][0-9].rtf" -type f

  • 这不起作用: find . -name "skr[0-9]{5}.rtf" -type f find . -name "skr[0-9]{5}.rtf" -type f

谁能解释一下并给我类似于第二版命令的信息。

{5}是来自扩展正则表达式的语法,而不是来自shell globlob的语法。 使用-name无效。

您可以在某些查找版本(GNU)中使用-regex而不是-name 在这种情况下,您的模式必须匹配整个路径,请注意*? . 因为它们在正则表达式中具有不同的含义。

重复计数语法是“扩展” RE的一部分,因此您需要使用-E(具有实际上支持它的find变体):

find -E . -regex '.+/skr[0-9]{5}\.rtf' -type f

在Mac上,如果您需要这样的舒适性,则需要安装GNU findtools:

brew install findutils --default-names

在某些系统上,您可以尝试使用gfind而不是find

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM