2016-08-22 74 views
2

你能幫我寫一個腳本,我只想找到超過2GB的日誌文件,並將它們複製到同一目錄中的存檔文件夾中。我只是寫一個find命令它不工作,欣賞有人能幫助我。Linux找到命令,並在同一時間複製並重命名

前主日誌文件夾 -/vsapp/logs/ - app1,app2,app3 在app1,app2和app3文件夾中有很多日誌。

所以我想找到超過2GB的日誌文件夾中的日誌,並將它們複製到與今天的日期不同的名稱的存檔文件夾。

前 - abcd.log -----副本-----> abcd.log - 2016年8月22日

我此刻的命令,它不工作

find $i/* -type f -size +2G -exec cp '{}' $i/$arc/{}-$date 

回答

2

你可以這樣做:

find /src -type f -name '*.log' -size +2G -exec cp {} /dest/{}-$(date -I) \; 

附加/修改我提出:

  • -name '*.log'僅搜索日誌文件,因爲我們只對這些文件感興趣。你可以尋找與任何名稱的文件太多,如果不能確定,只是省略-name '*.log在這種情況下

  • $(date -I)是命令替換的輸出是今天在格式YYYY-mm-dd日期,你也可以定義自定義格式,檢查man date

  • find-exec行動\;

+0

發現。 -type f -size + 2G -exec cp {} archive/{} - date \;試試這個,但不會工作,它不是複製,即時通過創建一個文件大小爲2GB的文件進行測試。 – SLS

+0

@SLS再次檢查我的命令。你需要找到。 -type f -size + 2G -exec cp {} archive/{} - $(date -I)\;' – heemayl

+0

Nop朋友,它不會複製到歸檔文件夾。 – SLS