如何选择"等于/更新"基于Solaris / Shell中的时间输入的文件

时间:2016-01-18 20:26:49

标签: bash unix awk solaris ksh

以下是ls -ltrh的基本输出(在Solaris中):

-rw--r--r-- 57 oracle  dba   1.9K Jan 18 14:38 file001.log
-rw--r--r-- 30 oracle  dba   1.0K Jan 18 14:41 file002.log
-rw--r--r--  8 oracle  dba   272B Jan 18 15:33 file003.log
-rw--r--r--  8 oracle  dba   272B Jan 18 15:35 file004.log

时间的应用程序输出始终采用以下格式(无法更改),根据该格式我需要选择文件> = date:

01/18/2016 14:41

在上面的例子中,我需要1月18日以来的所有文件,时间戳为14:41而且更新。

2 个答案:

答案 0 :(得分:2)

切割/ sed /之后,将日期01/18/2016 14:41转换为201601181441.00。现在创建一个带有该时间戳的tmp文件并查找更新的文件:

touch -t 201601181441.00 /tmp/olddate
find . -newer /tmp/olddate -print
rm -f /tmp/olddate

答案 1 :(得分:1)

我在这里使用不同的方法 - 而不是使用has_and_belongs_to_many并解析输出,您可以使用unix find命令。

例如,这将为您提供过去一周修改过的文件:

ls

你也可以使用find . -mtime -7 标志来获取比某个特定文件更新的所有文件(然后使用第二个答案here上显示的技巧来获得比特定日期更新的文件)