我在目录中有以下文件
-rw-r--r--. 1 svcamt pharpan 212 Feb 16 17:04 ManPOC_Process_Log.2017_02_16
-rw-r--r--. 1 svcamt pharpan 212 Feb 17 17:04 ManPOC_Process_Log.2017_02_17
-rw-r--r--. 1 svcamt pharpan 271 Feb 18 17:04 ManPOC_Process_Log.2017_02_18
-rw-r--r--. 1 svcamt pharpan 212 Feb 18 17:04 ManPOC_Process_Log.2017_02_19
-rw-r--r--. 1 svcamt pharpan 212 Feb 20 17:04 ManPOC_Process_Log.2017_02_20
-rw-r--r--. 1 svcamt pharpan 334 Feb 21 17:04 ManPOC_Process_Log.2017_02_21
-rw-r--r--. 1 svcamt pharpan 212 Feb 22 17:04 ManPOC_Process_Log.2017_02_22
-rw-r--r--. 1 svcamt pharpan 212 Feb 23 17:04 ManPOC_Process_Log.2017_02_23
-rw-r--r--. 1 svcamt pharpan 213 Feb 24 17:04 ManPOC_Process_Log.2017_02_24
-rw-r--r--. 1 svcamt pharpan 272 Feb 25 17:04 ManPOC_Process_Log.2017_02_25
-rw-r--r--. 1 svcamt pharpan 213 Feb 26 17:04 ManPOC_Process_Log.2017_02_26
-rw-r--r--. 1 svcamt pharpan 213 Feb 27 17:04 ManPOC_Process_Log.2017_02_27
-rw-r--r--. 1 svcamt pharpan 213 Feb 28 17:04 ManPOC_Process_Log.2017_02_28
我想要所有早于2017_02_26的文件。这里的旧版本意味着25日,24日等。这是我目前为止的代码
dir='/logs/Manpoc/'
check=`date -d "- 12 days" "+%F"`
for f in ls "$dir"*
do
var= "$($f|awk '{print $9}'| cut -d'_' -f 2)"
if [ $var < $check ]
then
echo $f
fi
done
这不能给我预期的结果。如何获得所需的记录?
答案 0 :(得分:2)
只需使用find:
find /logs/Manpoc -type f -ctime +12
如果您不想要子目录:
find /logs/Manpoc -maxdepth 1 -type f -ctime +12
使用一些格式:
find /logs/Manpoc -type f -ctime +12 -printf "%f\n"