如何在 Linux 中找出最近或今天被修改的文件

Aaron Kili 的头像

·

·

·

33,833 次阅读

在本文中,我们将解释两个简单的命令行小技巧,它可以帮你只列出所有的今天的文件。

Linux 用户在命令行上遇到的常见问题之一是定位具有特定名称的文件,如果你知道确定的文件名则可能会容易得多。

不过,假设你忘记了白天早些时候创建的文件的名称(在你包含了数百个文件的 home 文件夹中),但现在你有急用。

下面用不同的方式只列出所有你今天创建或修改的文件(直接或间接)。

1、 使用 ls 命令,只列出你的 home 文件夹中今天的文件。

# ls  -al --time-style=+%D | grep 'date +%D'

其中:

  • -a – 列出所有文件,包括隐藏文件
  • -l – 启用长列表格式
  • --time-style=FORMAT – 显示指定 FORMAT 的时间
  • +%D – 以 %m/%d/%y (月/日/年)格式显示或使用日期
Find Recent Files in Linux

在Linux中找出最近的文件

此外,你使用可以 -X 标志来按字母顺序对结果排序

# ls -alX --time-style=+%D | grep 'date +%D'

你也可以使用 -S 标志来基于大小(由大到小)来排序:

# ls -alS --time-style=+%D | grep 'date +%D'

2、 另外,使用 find 命令会更灵活,并且提供比 ls 更多的选项,可以实现相同的目的。

  • -maxdepth 级别用于指定在搜索操作的起点下(在这个情况下为当前目录)的搜索层级(子目录层级数)。
  • -newerXY,用于所寻找的文件的时间戳 X 比参照文件的时间戳 Y 更新一些的文件。 XY 表示以下任何字母: – a – 参照文件的访问时间 – B – 参照文件的创建时间 – c – 参照文件的 inode 状态改变时间 – m – 参照文件的修改时间 – t – 直接指定一个绝对时间

下面的命令意思是只找出 2016-12-06 这一天修改的文件:

# find . -maxdepth 1 -newermt "2016-12-06"
Find Today's Files in Linux

在 Linux 中找出今天的文件

重要:在上面的 find 命令中使用正确的日期格式作为参照时间,一旦你使用了错误的格式,你会得到如下错误:

# find . -maxdepth 1 -newermt "12-06-2016"
find: I cannot figure out how to interpret '12-06-2016' as a date or time

或者,使用下面的正确格式:

# find . -maxdepth 1 -newermt "12/06/2016"
或者
# find . -maxdepth 1 -newermt "12/06/16"
Find Todays Modified Files in Linux

在 Linux 中找出今天修改的文件

你可以在我们的下面一系列文章中获得 lsfind 命令的更多使用信息。

在本文中,我们解释了如何使用 ls 和 find 命令帮助只列出今天的文件。 请使用以下反馈栏向我们发送有关该主题的任何问题或意见。 你也可以提醒我们其他可以用于这个目的的命令。

via: http://www.tecmint.com/find-recent-modified-files-in-linux/

作者:Aaron Kili 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

5 条回复

  1. ryt [Chrome 54.0|GNU/Linux] 的头像
    ryt [Chrome 54.0|GNU/Linux]

    另外一种通过find找出今天修改的文件的方法:
    $ find . -maxdepth 1 -mmin -$((`date +%H`*60+`date +%M`))

    来自北京
  2. 来自四川成都的 Chrome 55.0|GNU/Linux 用户 的头像
    来自四川成都的 Chrome 55.0|GNU/Linux 用户

    不直观。

    find . -maxdepth 1 -newermt $(date –date=’now’ ‘+%Y-%m-%d’)

    来自成都
  3. cxljava [Internet Explorer 8.0|Windows 7] 的头像
    cxljava [Internet Explorer 8.0|Windows 7]

    看着好高大!

    来自广州
  4. 来自河北秦皇岛的 Chrome 45.0|Windows 7 用户 的头像
    来自河北秦皇岛的 Chrome 45.0|Windows 7 用户

    我试了 ls  -al –time-style=+%D | grep ‘date +%D’  过滤的不是当前日期好像是 ‘date +%D’ 本身,怎么破?

    来自秦皇岛
  5. linux [Chrome 55.0|Mac 10.11] 的头像
    linux [Chrome 55.0|Mac 10.11]

    不是单引号,是波浪号下面的单撇号。

    来自北京

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注