将最新文件复制到预先存在的目录

将最新文件复制到预先存在的目录

我有几个目录

/home/imp/imp/msgs

/home/imp/imp/msgs/bak

首先发生的事情是所有文件 (*.BRD*.MIX) 都/home/imp/imp/msgs/被复制到/home/imp/imp/msgs/bak

当发布消息时,它们会被复制回/home/imp/imp/msgs/

我想做的是将最新文件(*.BRD*.MIX)从复制/home/imp/imp/msgs//home/imp/imp/msgs/bak/

这可能吗?

我有一个 shell 脚本,在将文件 (*.BRD*.MIX) 复制到 之前运行/home/imp/imp/msgs//home/imp/imp/msgs/bak/

#!/bin/bash

export SDL_VIDEODRIVER=dummy
nice -n 20 dosbox -noconsole -c "mount c /" -c "c:" -c "cd \\home\\imp\\imp\\" -c "set PATH=c:\\home\\imp\\imp\\" -c "imp-mail scan" -c "set FIDOCONFIG=c:\\home\\imp\\hpt\\config\\config" -c "hpt pack scan" -c "exit"
rm /home/imp/hpt/flags/hpt.lock
/home/imp/imp/pktdate -c /home/imp/hpt/pkt-out/*.pkt
cd /home/imp/hpt
./hpt pack scan

它将*.BRD*.MIX文件导入到/home/imp/imp/msgs/

谢谢。

答案1

我不能 100% 确定您的目录结构,但类似下面的内容应该可以工作。

find /home/imp/imp/msgs/ -maxdepth 1 -newer FOO_FILE -name '*.BRD' -o -name '*.MIX' -execdir cp {} /home/imp/imp/msgs/bak/ \;

解释

  • find /home/imp/imp/msgs/:在这个目录下查找
  • -maxdepth 1: 不要进入子目录
  • -newer FOO_FILE: 只查找比FOO_FILE更新的文件
  • -name '*.BRD' -o -name '*.MIX': 带有姓名*.BRD*.MIX
  • -execdir cp {} /home/imp/imp/msgs/bak/ \;:将这些文件复制到/home/imp/imp/msgs/bak/

可能最好先测试它是否与正确的文件匹配,通过在没有最后一部分的情况下运行它,即

find /home/imp/imp/msgs/ -maxdepth 1 -newer FOO_FILE -name '*.BRD' -o -name '*.MIX'

相关内容