在 Linux 中获取当前日期的文件?

Use*_*123 5 linux date timestamps files

通常date +%d给出08当前日期 08/10/2017的输出。但是当我ls -lrt在路径上执行时,日期格式就像Oct 8 15:03,那么,我如何获取当前日期的文件?

我正在使用命令

ls -lrt XYZ.LOG* |grep "$(date +'%b %d')" |awk '{print $9}'
Run Code Online (Sandbox Code Playgroud)

但它没有给我今天日期(08/10/2017)的文件,尽管它给了我任何一个月的 10 - 31 日的正确输出。

Kus*_*nda 6

这有点作弊,但它有效。

首先创建一个带有特定时间戳的空参考文件,即午夜:

touch -d "$(date +%FT00:00:00)" /tmp/midnight
Run Code Online (Sandbox Code Playgroud)

然后找到比这个文件更新的文件:

find . -type f -newer /tmp/midnight
Run Code Online (Sandbox Code Playgroud)

如果你想要ls-like 输出find而不仅仅是路径名:

find . -type f -newer /tmp/midnight -ls
Run Code Online (Sandbox Code Playgroud)

如果要查找与模式匹配的文件XYZ.LOG*

find . -type f -name 'XYZ.LOG*' -newer /tmp/midnight -ls
Run Code Online (Sandbox Code Playgroud)

如果您有 GNU find,则可以绕过临时文件并使用

find . -type f -newermt 0
Run Code Online (Sandbox Code Playgroud)

获取自午夜以来修改的文件。


相关:为什么*不*解析`ls`?