2012-09-04 121 views
2

我遇到以下命令的問題,它會將應用程序中的文件從/解包到/存儲超過13天。根據創建日期移動文件

find /home/user/private/data/unpack/* -mtime +13 -exec mv {} /home/user/private/data/unpack/storage/ \; 

但是,如果我保持這些文件在組織/存儲文件夾的子文件夾上面的命令將所有這些文件從文件夾移回/存儲

我周圍中搜索的一種方式,以排除/存儲完全來自find命令,並作爲一種方法得到了一個粗略的修剪。我還是比較新的Linux和正則表達式,所以仍然沒有運氣讓它自己工作。

交叉手指爲那裏有時間有幫助的職業。

+3

mtime不是創建日期。 –

+0

也許這可以通過使用rsync解決? –

回答

0

這可能會爲你工作(這是沒有結束\字符的單行):

find /home/user/private/data/unpack/* \ 
    -mtime +13 \ 
    \(! -regex '/home/user/private/data/unpack/storage/.*' \) \ 
    -exec mv {} /home/user/private/data/unpack/storage/ \; 
+0

我試圖在.sh腳本中使用你的代碼,它運行良好,但可悲的是,結果與我自己的完全一樣。仍然將子目錄文件夾中的任何文件移動到存儲文件夾。 – zyl1647

+0

更新了答案。 –

+0

非常非常棒。它不僅能夠完美工作,而且它不會像我的一樣發送垃圾郵件。非常感謝Zsolt。 – zyl1647

0

知道這是一個老的文章,但你嘗試這個

find /home/user/private/data/unpack/* -mtime +13 ! -path /home/user/private/data/unpack/storage/* -exec mv {} /home/user/private/data/unpack/storage/ \; 

這應該工作。

抱歉沒有'趕其他命令的工作