Bash

將最近創建的匹配模式的文件從一個文件夾移動到另一個文件夾

  • March 16, 2022

我正在尋找執行以下操作的 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/ {} +

**未經測試!**您必須測試 withecho mv而不是潛在危險的 mv.

zsh

autoload age
mv /tmp/*(.e[age today]) /home/project/

D如果您還想移動今天最後修改的隱藏文件,請添加 glob 限定符)。

請注意,這/tmp是系統的每個使用者(包括系統使用者)使用的臨時目錄。嘗試移動可能不是您自己的文件聽起來是個壞主意(系統不會讓您這樣做,除非您以root.

要僅考慮您擁有的文件,請使用Uglob 限定符。您還可以僅移動名稱與給定模式匹配的文件,例如以 結尾的文件.log

mv /tmp/*.log(.Ue[age today]) /home/project/

引用自:https://unix.stackexchange.com/questions/694664