我正在尝试查找所有带日期的文件和3天或更早之前的所有文件。
find /home/test -name 'test.log.\d{4}-d{2}-d{2}.zip' -mtime 3
它没有列出任何东西。怎么了
Answers:
find /home/test -regextype posix-extended -regex '^.*test\.log\.[0-9]{4}-[0-9]{2}-[0-9]{2}\.zip' -mtime +3
-name
使用球形表达式,又称通配符。你想要的是
-regex
find
使用扩展正则表达式-regextype posix-extended
\.
+
为-mtime +3
。$ find . -regextype posix-extended -regex '^.*test\.log\.[0-9]{4}-[0-9]{2}-[0-9]{2}\.zip'
./test.log.1234-12-12.zip
[0-9]{2}
尚未在macO上为我工作,我不得不使用[0-9][0-9]
find -E . -iregex '^.*\.js(\.map)?$'
用途-regex
:
从手册页:
-regex pattern
File name matches regular expression pattern. This is a match on the whole path, not a search. For example, to match a file named './fubar3', you can use the
regular expression '.*bar.' or '.*b.*3', but not 'b.*r3'.
另外,我不find
支持regex扩展名\d
。您需要使用[0-9]
。
find . -regex '.*test\.log\.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\.zip'
-E
。find -E . -regex 'theregex'
以利用扩展的(现代)正则表达式。