2012-01-13 58 views
1

我試圖找到30天前創建/修改的文件,並將其歸檔。爲此,我使用Unix查找命令。我可以用下面的命令行來達到要求。使用find命令查找文件並使用附加日期進行存檔 - 需要單個查找命令

find . -type f -mtime +30 -exec basename {} \; | xargs -I file_name echo mv /home/Cyrup/chip/arc_poc/file_name /home/Cyrup/chip/arc_poc/arc/file_name_$(date +%Y%m%d) | ksh 

但是我想執行這個任務只是使用find命令,我無法實現。我試圖使用下面:

find . -type f -mtime +30 -exec mv {} /home/Cyrup/chip/arc_poc/arc/{}_`date +%Y%m%d` \; 

但它沒有工作。這裏如果{}充當find命令標識的所有文件的佔位符。然後,我在錯誤的地方移動文件時,通過重命名它與日期?

另外-mtime是修改時間的文件。有什麼方法可以根據文件的創建時間找到文件。據我所知,我們沒有find命令的選項。

感謝

+0

http://theunixshell.blogspot.in/2012/12 /create-achieve-with-all-files-from.html – Vijay 2014-04-22 09:51:09

回答

2

這是不可能做到這一點只是在find命令。你也許可以寫一個腳本,重命名和使用替代mv的:

find . -type f -mtime +30 -exec appenddate.sh {} \; 

隨着appenddate.sh是這樣的:

mv $1 $1_`date +%Y%m%d`