如何找到名称取决于当前日期(和随机部分)的文件?

如何找到名称取决于当前日期(和随机部分)的文件?

我必须每天检查特定路径并找到名称格式为以下的文件:

StaticData_Sets_yyyymmdd-232550.txt

字符串后面的名称中的日期StaticData_Sets_每天都会更新,具体取决于系统日期。日期后面的数字是随机的。

如何在 Unix 中找到当前日期的文件?

答案1

使用命令date以正确的输出格式生成当前日期,并按以下方式将该字符串附加到文件名:

filename=StaticData_Sets_$(date +"%Y%m%d")
find . -name "$filename*.txt"

答案2

find命令应该找到具有今天日期的文件:

find /path/ -regex ".*\/StaticData_Sets_$(date +%Y%m%d)-[0-9]+\.txt"

它会找到所有包含 的内容/StaticData_Sets_,然后是所需格式的日期,然后是一个数字 ( [0-9]+)。

答案3

如果该文件直接位于给定的路径下(没有额外的子目录),那么这应该可以工作。

file=$path/StaticData_Sets_$(date +"%Y%m%d")-*.txt

如果有那么这应该可以工作(可能需要globstar在 bash 中手动启用)。

    file=$path/**/StaticData_Sets_$(date +"%Y%m%d")-*.txt

相关内容