Bash 日期后的文件列表

Bash 日期后的文件列表,bash,Bash,我想在特定日期后获取所有文件。我试过: ls -ltr | awk {'print $6'} | sed s/-//g | awk {'if ($1-20110415 > 0 ) {print $1}'} 50%的效果很好。最后一个命令只打印文件的日期。如何打印文件日期和文件名?在awk$8中是文件名,但我不知道如何传输,直到命令行中的最后一个print 谢谢,, 卢克这个稍加修改的版本怎么样 ls -ltr | awk {'print $6 " " $8 '} | sed s/-//

我想在特定日期后获取所有文件。我试过:

ls -ltr | awk {'print $6'} | sed s/-//g | awk {'if ($1-20110415 > 0 )  {print $1}'}
50%的效果很好。最后一个命令只打印文件的日期。如何打印文件日期和文件名?在
awk$8
中是文件名,但我不知道如何传输,直到命令行中的最后一个
print

谢谢,,
卢克

这个稍加修改的版本怎么样

ls -ltr | awk {'print $6 " " $8 '} | sed s/-//g | awk {'if ($1-20110426 > 0 ) {print $1 " " $2}'}
似乎在为我耍把戏

如何使用其中一个基于时间的开关,然后使用printf指定要显示的字段?您可以在手册页中找到所有选项

编辑-我现在没有合适的环境为您提供示例-我将在明天尝试更新答案

尝试以下命令:

find /my/path -mtime -1  # to get files modified in last 1 day

find /my/path -mtime -1.5  # to get files modified in last 1.5 day

如果您正在寻找查找更新文件并对其进行处理的方法,则可以在处理结束后触摸文件,并使用find的
-更新的

-newer file
    File was modified more recently than file.
因此,当您需要更新的文件列表时,您需要执行以下操作:

find/path/to/dir-更新的.file

这将递归列出/path/to/dir中修改日期晚于touch.file的所有文件。处理完更新的文件后,不要忘记再次触摸该touch.file,或者记下下下一次迭代要测试的文件。

ls-ltr--time style=long iso | awk'$6>=“2018-10-10”{print$6,$8}

这将为我提供指定路径上所有在
2018-10-10
或更高版本上修改过的文件


--time style=long iso
是确保时间包括年、月和日期的好方法。这有助于我在保存多年文件时排除旧文件

嗯。我看到一段时间只需要一个数字,也就是天数。我也尝试了更新的“2011-04-15”,但它返回了错误。我发现这个例子touch-t
date+%m%d0000
/tmp/$$find/tmefndr/oravl01-type f-newer/tmp/$$rm/tmp/$$但是我正在寻找另一种不使用touch命令的方法。是的,您可以创建一个临时文件,用所需的日期触摸它,然后用-newer进行比较。。。我没想到这会让你得到你想要的准确时间。但是,-daystart开关可能对您有用。它有效地基于所讨论的actaul日进行比较(例如,2010年4月3日下午12:45以上,将返回4/3/10日00:00以上的所有文件),可能会帮助您获得所需的内容…操作…抱歉…我没有看到您将日期设置为“26”…我将其设置回15…如果文件名不包含“-”符号,则工作正常。否则我怎么做呢?感谢您极限测试的乐趣:))唯一的问题是一些文件的文件名中有“-”,sed命令也会更改原始文件名。调整regexp以仅修改前3个连字符!:)不要使用
ls
解析文件。使用
find
(darwin)。/-mtime-1.5 find:-mtime:-1.5:bad unit.”是OSX上的find版本较旧,只支持
-mtime