Copiando os arquivos mais recentes para um diretório preexistente

2

Eu tenho alguns diretórios

/home/imp/imp/msgs

e

/home/imp/imp/msgs/bak

A primeira coisa que acontece é que todos os arquivos ( *.BRD e *.MIX ) em /home/imp/imp/msgs/ são copiados para /home/imp/imp/msgs/bak

E quando uma mensagem é postada, eles são copiados de volta para /home/imp/imp/msgs/

O que eu gostaria de fazer é copiar os arquivos mais recentes ( *.BRD e *.MIX ) de /home/imp/imp/msgs/ para /home/imp/imp/msgs/bak/

Isso é possível?

Eu tenho um script de shell que é executado antes dos arquivos ( *.BRD e *.MIX ) serem copiados de /home/imp/imp/msgs/ para /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

Importa os arquivos *.BRD e *.MIX para /home/imp/imp/msgs/

Obrigado.

    
por ignatius 14.03.2017 / 01:21

1 resposta

0

Eu não tenho 100% de certeza da sua estrutura de diretórios, mas algo como o seguinte deve funcionar.

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

Explicação

  • find /home/imp/imp/msgs/ : encontre neste diretório
  • -maxdepth 1 : não insira subdiretórios
  • -newer FOO_FILE : localize apenas arquivos mais recentes que FOO_FILE
  • -name '*.BRD' -o -name '*.MIX' : com o nome *.BRD ou *.MIX
  • -execdir cp {} /home/imp/imp/msgs/bak/ \; : copie esses arquivos para /home/imp/imp/msgs/bak/

Provavelmente, é melhor testar primeiro se eles correspondem aos arquivos corretos, executando-os sem a última parte, ou seja,

find /home/imp/imp/msgs/ -maxdepth 1 -newer FOO_FILE -name '*.BRD' -o -name '*.MIX'
    
por 14.03.2017 / 03:19