Linux 用户在命令行上遇到的常见问题之一是定位具有特定名称的文件,如果你知道确定的文件名则可能会容易得假设你忘记了白天早些时候创建的文件的名称(在你包含了数百个文件的 home 文件夹中),但现在你有急用。 下面用不同的方式只列出所有你今天创建或修改的文件(直接或间接)。
-- Aaron Kili
本文导航-1、 使用 ls 命令,只列出你的 home 文件夹中今天的文件。13%
-2、 另外,使用 find 命令会更灵活,并且提供比 ls 更多的选项,可以实现相同的目的。33%编译自: http://www.tecmint.com/find-recent-modified-files-in-linux/
作者: Aaron Kili
译者: geekpi
在本文中,我们将解释两个简单的命令行小技巧,它可以帮你只列出所有的今天的文件。
Linux 用户在命令行上遇到的常见问题之一是定位具有特定名称的文件[1],如果你知道确定的文件名则可能会容易得多。
不过,假设你忘记了白天早些时候创建的文件的名称(在你包含了数百个文件的 home文件夹中),但现在你有急用。
下面用不同的方式只列出所有你今天创建或修改的文件[2](直接或间接)。
1、 使用 ls 命令,只列出你的 home 文件夹中今天的文件。# ls -al --time-style=+%D | grep 'date +%D'
其中:-a- 列出所有文件,包括隐藏文件
-l- 启用长列表格式
--time-style=FORMAT- 显示指定 FORMAT 的时间
+%D- 以%m/%d/%y(月/日/年)格式显示或使用日期
在Linux中找出最近的文件
此外,你使用可以 -X标志来按字母顺序对结果排序[3]:# ls -alX --time-style=+%D | grep 'date +%D'
你也可以使用 -S标志来基于大小(由大到小)来排序:# ls -alS --time-style=+%D | grep 'date +%D'
2、 另外,使用 find 命令会更灵活,并且提供比 ls更多的选项,可以实现相同的目的。-maxdepth级别用于指定在搜索操作的起点下(在这个情况下为当前目录)的搜索层级(子目录层级数)。
-newerXY,用于所寻找的文件的时间戳X比参照文件的时间戳Y更新一些的文件。X和Y表示以下任何字母: -a- 参照文件的访问时间 -B- 参照文件的创建时间 -c- 参照文件的 inode 状态改变时间 -m- 参照文件的修改时间 -t- 直接指定一个绝对时间
下面的命令意思是只找出 2016-12-06 这一天修改的文件:# find . -maxdepth 1 -newermt "2016-12-06"
在 Linux 中找出今天的文件
重要:在上面的 find 命令[4]中使用正确的日期格式作为参照时间,一旦你使用了错误的格式,你会得到如下错误:# 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"
在 Linux 中找出今天修改的文件
你可以在我们的下面一系列文章中获得 ls和find命令的更多使用信息。
在本文中,我们解释了如何使用 ls 和 find 命令帮助只列出今天的文件。 请使用以下反馈栏向我们发送有关该主题的任何问题或意见。 你也可以提醒我们其他可以用于这个目的的命令。
作者简介:Aaron Kili是一名 Linux 和 F.O.S.S 的爱好者,未来的 Linux 系统管理员、网站开发人员,目前是 TecMint 的内容创作者,他喜欢用电脑工作,并乐于分享知识。
作者:Aaron Kili[9] 译者:geekpi校对:jasminepeng
本文由 LCTT[10] 原创编译,Linux中国荣誉推出
推荐文章