Command-Line
使用 mv,可以對 mv’ed 文件產生時間依賴性嗎?
假設我有一個特定的時間和日期。在此日期之前最後編輯的所有文件我想保留在目錄中,但自此日期以來已編輯的所有文件我想保存在
mv
其他地方。的man
頁面mv
沒有mv
直接顯示這是可能的。我認為以下某種形式應該可以工作:ls -t | head -n $number
Where
$number
指定自我想到的時間和日期以來已編輯的文件數。然後我可以以某種方式將其提供mv
給mv
這些文件(還沒有想到如何做到這一點)。這樣做的缺點是我必須計算自我想到的日期和時間以來已經編輯了多少文件。有沒有一種方法可以讓我只指定日期和時間,讓我的電腦找出需要mv
編輯的文件以及mv
它們?如果不是,那麼我將如何完成我上面編寫的命令以提供這些文件名以mv
將它們全部mv
編輯到同一位置?
find /path/to/dir -mtime +5 -exec mv {} /target/path/ ';'
會將所有
/path/to/dir
超過五天的文件移動到 /target/path。你可以試試這個看看實際會執行什麼:
find /path/to/dir -mtime +5 -exec echo mv {} /target/path/ ';'
請注意,該
-mtime
參數檢查文件的修改時間。查看-ctime
或-atime
在find 的手冊頁中了解更多詳細資訊。如果您想以分鐘為單位指定您的時間,請使用
-mmin
和-cmin
之一-amin
。要查找小於特定時間的文件,請使用
-
而不是+
,例如-mmin -30
.另一種方法是使用
xargs
(它將使用每個輸入行執行一個命令;手冊頁):find /path/to/dir -mtime +5|xargs -i echo mv {} /target/path
(刪除“迴聲”以實際移動東西)