将最近创建的与某一模式匹配的文件从一个文件夹移动到另一个文件夹

将最近创建的与某一模式匹配的文件从一个文件夹移动到另一个文件夹

我正在寻找一个 bash 脚本示例,它执行以下操作:

/tmp我正在文件夹下写入文件

我在xterm提示符下执行此操作,ls -ltr这会为我提供最近文件的列表,例如:

abc_mytest.log
abc_runTimeFailure.scripted.log
myManager.log

我想将 ( mv) 今天编写的最新内容移动到 /home/project/ 下的新文件夹中。

/tmp我只想将今天创建的那些移动到/home/project/

社区可以分享的任何示例都可以在我重新发明轮子之前节省我的时间。

谢谢,埃里克

答案1

zsh

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

D如果您还想移动今天最后修改的隐藏文件,请添加 glob 限定符)。

请注意,这/tmp是系统的每个用户(包括系统用户)使用的临时目录。尝试移动可能不属于您自己的文件听起来是一个坏主意(系统不会让您这样做,除非您这样做root)。

要仅考虑您拥有的文件,请使用Uglob 限定符。您还可以仅移动名称与给定模式匹配的文件,例如以 结尾的文件.log

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

答案2

阅读man find mv并执行以下操作:

find /tmp -maxdepth 1 -type f -daystart -mtime 0 \
  -exec mv -t /home/project/ {} +

未经测试!您必须使用echo mv而不是潜在危险的 进行测试mv

相关内容