我正在寻找一个 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
)。
要仅考虑您拥有的文件,请使用U
glob 限定符。您还可以仅移动名称与给定模式匹配的文件,例如以 结尾的文件.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
。