Bash
將最近創建的匹配模式的文件從一個文件夾移動到另一個文件夾
我正在尋找執行以下操作的 bash 腳本範例:
我有文件被寫入
/tmp
文件夾下我在
xterm
提示符下執行,ls -ltr
它為我提供了最近文件的列表,例如:abc_mytest.log abc_runTimeFailure.scripted.log myManager.log
我想將(
mv
)今天寫入的最新文件移動到 /home/project/ 下的新文件夾中。我只想將
/tmp
在今天創建的那些移動到/home/project/
在我重新發明輪子之前,社區可以分享的任何範例都會為我節省時間。
謝謝,埃里克
閱讀
man find mv
並執行以下操作:find /tmp -maxdepth 1 -type f -daystart -mtime 0 \ -exec mv -t /home/project/ {} +
**未經測試!**您必須測試 with
echo mv
而不是潛在危險的mv
.
與
zsh
:autoload age mv /tmp/*(.e[age today]) /home/project/
(
D
如果您還想移動今天最後修改的隱藏文件,請添加 glob 限定符)。請注意,這
/tmp
是系統的每個使用者(包括系統使用者)使用的臨時目錄。嘗試移動可能不是您自己的文件聽起來是個壞主意(系統不會讓您這樣做,除非您以root
.要僅考慮您擁有的文件,請使用
U
glob 限定符。您還可以僅移動名稱與給定模式匹配的文件,例如以 結尾的文件.log
:mv /tmp/*.log(.Ue[age today]) /home/project/