2016-03-08 76 views
0

這列出了名稱中包含字符串「UGW」,-name '*UGW*'的最後一天(24小時)-mtime -1已修改的文件:列出過去x天已被修改的文件(不包括今天)

find ./ -mtime -1 -type f -name '*UGW*' -printf '%Tc %p\n' | sort 

有沒有簡單的方法來修改這個,以便我只列出最後的X天但今天排除?

注意: 我在這裏排序,但我不認爲這是通過時間戳正確排序100%。

EDIT1基於以下提示以下錯誤:

:~/tmp$ find ./ -mtime -1 -type f -name '*' -printf '%Tc %p\n'                 Tue 08 Mar 2016 12:25:01 NZDT ./compareKPIs-log 
    Mon 07 Mar 2016 18:05:02 NZDT ./log-file 
    Tue 08 Mar 2016 12:25:01 NZDT ./compareKPIs-error 
    Mon 07 Mar 2016 18:05:02 NZDT ./backup_public_html_20160307.tgz 


:~/tmp$ comm -13 <(find ./ -daystart -mtime -1 -type f -printf '%Tc %p\n') <(find ./ -daystart -mtime -3 -type f -printf '%Tc %p\n') 
    Sun 06 Mar 2016 18:05:00 NZDT ./backup_public_html_20160306.tgz 
    comm: file 2 is not in sorted order 
    Mon 07 Mar 2016 18:05:02 NZDT ./log-file 
    comm: file 1 is not in sorted order 
    Mon 07 Mar 2016 18:05:02 NZDT ./backup_public_html_20160307.tgz 
+0

你是什麼意思「今天」? 「從午夜開始」?和「最後X天」,是「現在時間24小時」還是日曆天? –

+0

當我說最後x天我的意思是,1天將是昨天的所有,2天將是截至昨天午夜的最後2天,從2天前的00:00開始,即那將是48小時... .etc – HattrickNZ

回答

0

***編輯雁:實際的方式做到這一點:

find ./ -daystart -mtime -3 -type f ! -mtime -1 -printf '%Tc %p\n' 

用途:

  • ! -mtime -1今天排除
  • -daystart開始於00:00

真正的hackish,但對於

comm -13 <(find ./ -daystart -mtime -1 -type f -printf '%Tc %p\n' | sort) <(find ./ -daystart -mtime -3 -type f -printf '%Tc %p\n' | sort) 

comm的命令行選項有:

-1 suppress column 1 (lines unique to FILE1) 

-2 suppress column 2 (lines unique to FILE2) 

-3 suppress column 3 (lines that appear in both files) 
+0

tks,請參閱編輯1中的問題是不正確 – HattrickNZ

+0

@HattrickNZ這應該只是一個評論在這裏,而不是編輯的問題。 –

+0

對每個查找命令進行排序,即應修復錯誤。還添加了實際的方式來做到這一點。 – xvan