使用ls筛选某一天的文件
ls命令,即便是对于程序开发人员,也可以说是使用频率最高的一个命令了。但是,在很多人的印象中,ls命令仅仅是用来查看目录与文件的命令而已。如果要说筛选文件,你的第一反应可能是:find命令。但也许,它并不能满足你的需求。
先来说说,启发我使用ls命令筛选文件的应用场景吧:
[afe:/home/afe/corpftp/NJ000066/bkzipfile]>ls|wc -l
4768
[afe:/home/afe/corpftp/NJ000066/bkzipfile]>l|head -9
总用量 3985504
-rw-r----- 1 afe afe 174984 6月 1 2016 CXQQP100H1013601020010000A8YHYH00023420160506000002.zip
-rw-r----- 1 afe afe 178451 6月 1 2016 CXQQP100H1013601020010000A8YHYH00023420160506000003.zip
-rw-r----- 1 afe afe 186625 6月 1 2016 CXQQP100H1013601020010000A8YHYH00023420160507000001.zip
-rw-r----- 1 afe afe 175124 6月 1 2016 CXQQP100H1013601020010000A8YHYH00023420160509000001.zip
-rw-r----- 1 afe afe 181216 6月 1 2016 CXQQP100H1013601020010000A8YHYH00023420160509000002.zip
-rw-r----- 1 afe afe 175539 6月 1 2016 CXQQP100H1013601020010000A8YHYH00023420160509000003.zip
-rw-r----- 1 afe afe 182295 6月 1 2016 CXQQP100H1013601020010000A8YHYH00023420160510000002.zip
-rw-r----- 1 afe afe 197808 6月 1 2016 CXQQP100H1013601020010000A8YHYH00023420160510000003.zip
在上面的例子中,目录中共计有4768个文件,每天的文件个数是不确定的,可能是几个、几十个或者上百个。刚好,你需要确定某一天的文件个数呢?你会怎么办呢?
使用find命令是满足需求的,因为find命令的时间筛选都是基于范围的,你只能用它查找以当前时间为起点,若干个小时之内(之外),或者若干天之内(之外)的文件。而需要精确查找某一天的文件,它是无法达到要求的。
[afe:/home/afe/corpftp/NJ000066/bkzipfile]>find . -type f -mtime -2 -exec ls -lt {} \;
# 不难发现,基于find命令的输出,无法精确筛选某一天的文件
-