在本文中,我们将解释两个简单的命令行提示,使您能够仅列出今天的所有文件。
Linux用户在命令行上遇到的常见问题之一是查找具有特定名称的文件,当您实际知道文件名时,这可能会更容易。
然而,假设您忘记了您在当天早些时候创建的文件的名称(在您的home
文件夹中包含数百个文件),但您却急需使用。
1. 使用ls命令,您可以按如下方式仅列出今天在您的home文件夹中的文件,其中:
-a
– 列出所有文件,包括隐藏文件-l
– 启用长格式列表--time-style=FORMAT
– 以指定的FORMAT显示时间+%D
– 以%m/%d/%y格式显示/使用日期
# ls -al --time-style=+%D | grep 'date +%D'

此外,您可以通过包含-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的时间戳新,则此功能有效。X和Y代表以下任何字母:- a – 文件参考的访问时间
- B – 文件参考的创建时间
- c – 参考的inode状态更改时间
- m – 文件参考的修改时间
- t – 参考被直接解释为时间
这意味着,只有修改于2016-12-06的文件才会被考虑:
# find . -maxdepth 1 -newermt "2016-12-06"

重要:在上述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" OR # find . -maxdepth 1 -newermt "12/06/16"

您可以在我们的以下系列文章中获取有关ls
和find
命令的更多用法信息。
在本文中,我们解释了如何使用ls和find命令列出仅今天的文件的两个重要提示。请利用下面的反馈表格向我们发送关于该主题的任何问题或评论。您还可以告诉我们用于达到相同目标的任何命令。
Source:
https://www.tecmint.com/find-recent-modified-files-in-linux/