使用ls命令,是否可以仅显示在特定日期,小时之后创建的文件??

我问这是因为我有一个包含数千个文件的目录。

我要查看昨天以来创建的所有文件。

我使用的是ls -ltr,但我必须等待查看所有文件...

OpenVMS中有等效的DIRECTORY/SINCE=date吗?

评论

ls列出文件,但是选择列出哪些文件或输出格式并没有太多帮助。使用通配符(shell通配符)或查找何时要通过名称或元数据(例如日期)选择文件。

那么带ls的日期怎么样?你们两个成功了吗?

使用zsh:ls -1-*(。m-1)

#1 楼

您可以使用find命令查找经过一定天数后已修改的所有文件。

例如,查找自昨天(24小时前)以来已被修改的当前目录中的所有文件。 )使用:

find . -maxdepth 1 -mtime -1


请注意,要查找在24小时之前修改的文件,必须使用-mtime +1而不是-mtime -1

评论


我本来会说的。卢克,没有理由将自己限制在这里。

–沃伦·杨(Warren Young)
2011-3-24在16:04

使用GNU find,还有其他可能性。 -mmin 5列出最近5分钟内修改的文件。 -newermt“ 2011-02-27 13:42”列出自指定日期以来修改的文件。您可以使用-exec ls --color -ld {} +代替-ls来获得通常的颜色显示(如果您喜欢彩色的ls输出)。

–吉尔斯'所以-不再是邪恶的'
2011-3-24在20:44

注意减号:find。 -mmin -5

–user7543
2011年5月17日晚上8:32

也可以将-maxdepth 1增加到任意n值,以在子目录级别下搜索文件

–人类
2012年9月12日下午5:42

对我来说,它的工作方式是这样的:find。 -type f -newermt'1/15/2012 18:09:00'

– woohoo
2013年1月5日23:16

#2 楼

find . -type f -newermt '1/30/2017 0:00:00'


将找到在特定日期之后修改的所有文件。

#3 楼

ls -ltr | grep "`date | awk '{print " "}'`"


评论


嗨,特兰特!虽然您的解决方案在尝试尊重问题的使用ls的请求方面很有创造力,但解析ls的输出很少是安全的(例如,文件名包括换行符会发生什么情况?),我们希望它的答案不只是一个-班轮,而是要尽可能详细地解释它们的工作方式。

– dhag
2015年4月10日15:58

问题:(1)在我的系统上,日期显示为Jun 03,但是ls显示为6月3日,因此这不起作用。 (2)一周前,日期是5月27日。 grep“ 5月27日”会找到当天修改过的文件,但还会发现其他年份的5月27日修改过的文件-以及名称中带有“ 5月27日”的文件。 (并且,如果您认为这完全是虚假的关注,请查找“ Dec 10”。)(3)而且,如果您设法获得说出Jun 6的日期,则可以找到Jun 20至Jun 29,而不是Jun 2。 (两个空格)。 …(续)

– G-Man说“恢复莫妮卡”
2015年6月4日在1:33



(续)…(4)OP在列表的末尾使用ls -ltr来获取最新修改的文​​件。如果您要输入日期,则无需这样做(除了将清单末尾的2015年5月27日文件,2014年5月27日,2013年5月27日之后的文件等)。 (5)在awk中,打印$ 2,$ 3等效于打印$ 2“” $ 3,并且更容易阅读—特别是在存在其他三个引号级别时。

– G-Man说“恢复莫妮卡”
2015年6月4日在1:37



ls -ltr | grep“ $(date | awk'{print $ 2,$ 3}')”

– SergioAraujo
18年5月22日在12:21



#4 楼

希望它能起作用:

ls -ltr | awk ' == "May" &&  >=01 &&  <= 31 {print }'


此处:

 indicates position of month
 indicates day of the month


此以上命令将打印所有在5月1日至5月31日之间创建的

如果您还想在控制台上打印日期,请尝试以下操作

ls -ltr | awk ' == "May" &&  >=01 &&  <= 31 {print "-",}'


如果要指定目录的路径,您可以尝试一下

ls -ltr <path>| awk ' == "May" &&  >=01 &&  <= 31 {print "-",}'


评论


由于许多原因,解析ls输出不是一个好主意。并不是每个人都说英语:-)

–Luc M
18年4月18日在20:49