我有几个目录
/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'