我试图在3天或更久前找到所有文件的日期和所有文件.
find /home/test -name 'test.log.\d{4}-d{2}-d{2}.zip' -mtime 3
Run Code Online (Sandbox Code Playgroud)
它没有列出任何东西.这有什么问题?
Sie*_*geX 103
find /home/test -regextype posix-extended -regex '^.*test\.log\.[0-9]{4}-[0-9]{2}-[0-9]{2}\.zip' -mtime +3
Run Code Online (Sandbox Code Playgroud)
-name使用球形表达式,也就是通配符.你想要的是什么
-regexfind使用扩展正则表达式-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
Run Code Online (Sandbox Code Playgroud)
Eri*_*rik 15
使用-regex not -name,并注意正则表达式与查找的内容匹配,例如"/home/test/test.log"而不是"test.log"
Dig*_*oss 10
从...开始:
find . -name '*.log.*.zip' -a -mtime +1
Run Code Online (Sandbox Code Playgroud)
您可能不需要正则表达式,请尝试:
find . -name '*.log.*-*-*.zip' -a -mtime +1
Run Code Online (Sandbox Code Playgroud)
你需要+1才能匹配1,2,3 ......
用途-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'.
Run Code Online (Sandbox Code Playgroud)
另外,我不相信find支持正则表达式扩展,例如\d.你需要使用[0-9].
find . -regex '.*test\.log\.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\.zip'
Run Code Online (Sandbox Code Playgroud)
只是对用于搜索目录和文件的正则表达式进行了一点阐述
查找名称为 book 的目录
find . -name "*book*" -type d
Run Code Online (Sandbox Code Playgroud)
查找名称类似于 book word 的文件
find . -name "*book*" -type f
Run Code Online (Sandbox Code Playgroud)