2017-03-10 172 views
1

我有一個目錄發現文件名匹配的目錄

-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 

這並不給我預期的結果。如何獲得所需的記錄?

回答

2

只需使用發現:

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" 
+1

剛想MAXDEPTH小評:在我的Debian ,如果maxdepth不只是在find /目錄之後,它會給我一個錯誤。看來,-maxdepth必須是第一個參數。 –

+0

這是給我所有在26日以後創建的記錄,但是如何獲得所有較舊的記錄。例如:25日,24日記錄 – pharpan

+0

哦,對不起,你想+12,修復。 – Eduardo

相關問題