Como copiar arquivos de determinada data de um caminho para outro no Unix [closed]

0

Eu quero copiar arquivos de uma data específica de um diretório para outro. Alguém pode me sugerir o comando Unix para isso?

    
por Srinivas 29.12.2016 / 00:03

2 respostas

1

Dê uma olhada na página de manual de find , que possui parâmetros como -atime , -mtime ou -ctime para localizar arquivos que foram acessados, modificados ou alterados em determinado momento. -exec opção para copiar esses arquivos.

    
por 29.12.2016 / 00:46
1

A melhor maneira de fazer esse tipo de operação é usando o comando find . Tem muitas abordagens; Vou explicar dois destes:

1) Intervalos de tempo relativo
Nessa abordagem, você pode especificar exatamente os registros de data e hora de início e término e filtrar todos os arquivos que não forem modified/accessed/changed durante esse período. Você pode fazer isso usando o comando touch , salvando um arquivo com um timestamp específico.
No próximo exemplo, criamos dois marcadores ( timestamp_begin_file e timestamp_end_file ), definidos como 3 HOURS AGO e 1 HOUR AGO . Em seguida, usamos as opções newerct e ! newerct para selecionar arquivos mais recentes depois de 3 horas e não mais recentes e depois 1 hora (basta dar uma olhada em change time neste exemplo). Todos os arquivos selecionados serão copiados na pasta $DESTINATION_PATH .

touch -t $(date -d '3 HOUR AGO' +%Y%m%d%H%M.%S) timestamp_begin_file
touch -t $(date -d '1 HOUR AGO' +%Y%m%d%H%M.%S) timestamp_end_file
find "$FOLDER" -newerct timestamp_begin_file ! -newermt timestamp_end_file -exec cp {} $DESTINATION_PATH \;

2) Intervalos de tempo absoluto
Você pode usar as opções newermt para filtrar arquivos desnecessários em um intervalo de datas específico. Aqui, selecionamos apenas arquivos modificados durante o dia de 2007-06-07 :

find . -type f -newermt 2007-06-07 ! -newermt 2007-06-08 -exec cp {} $DESTINATION_PATH \;  

Como eu disse, muitas outras alternativas existem (como sugerido por @Jaleks, -a/m/ctime , mas devido à falta de informação, não podemos saber qual caso é adequado para você).

Para mais informações sobre filtragem de tempo em find , dê uma olhada no página de localização

    
por 29.12.2016 / 01:32