如何只获取在ls日期之后创建的文件?


97

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

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

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

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

有相当于DIRECTORY/SINCE=dateOpenVMS吗?


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

3
那么带ls的日期怎么样?你们两个成功了吗?
加勒特·奥尔布赖特2013年

3
zshls -1 -- *(.m-1)
don_crissti

Answers:


123

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

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

find . -maxdepth 1 -mtime -1

请注意,要查找24小时之前修改过的文件,您必须使用-mtime +1代替-mtime -1


3
我本来会说的。ls卢克,没有理由将自己限制在这里。
沃伦·扬

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

3
请注意减号:find . -mmin -5
user7543 2011年

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

3
对我来说,它的工作方式如下:find。型的F -newermt“2012年1月15日18时09分00秒”
哇噢

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

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


1
ls -ltr | grep "`date | awk '{print $2" "$3}'`"

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

1
问题:(1)在我的系统上,dateJun 03,但是lsJun  3,所以这不起作用。(2)一周前的日期是5月27日。  ls -l | grep "May 27"可以找到当天修改过的文件,也可以找到任何其他年份的5月27日修改过的文件-以及名称中带有“ 5月27日”的文件。(如果你认为这是一个完全虚假的关注,查找“12月10日”。)(3)而且,如果你设法让dateJun 2,grepping为会发现Jun 20通过Jun 29,但不能Jun  2(有两个空格)。…(续)
G-Man

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

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

0

希望这行得通:

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

这里:

$6 indicates position of month
$7 indicates day of the month

上面的命令显示在5月1日至5月31日或之后创建的所有文件名

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

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

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

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

由于许多原因,解析ls输出不是一个好主意。并非所有人都说英语:-)
Luc M
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.