1、 使用 ls 命令,只列出你的 home 文件夹中今天的文件。
ls -al --time-style=+%D | grep `date +%D`
其中:
-a
- 列出所有文件,包括隐藏文件-l
- 启用长列表格式--time-style=FORMAT
- 显示指定 FORMAT 的时间+%D
- 以%m/%d/%y
(月/日/年)格式显示或使用日期
此外,你使用可以 -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 中找出今天修改的文件