Procura arquivos em um certo período e os copia em outro diretório

1

O problema é que tenho um diretório contendo muitos arquivos com extensões .xml , .txt e .p7m do ano de 2015 até hoje .

Eu preciso criar um script que pesquise no diretório 1 todos os arquivos criados em um intervalo de tempo, por exemplo: de 13-jan-2016 to 23-feb-2016 , e execute uma cópia desses arquivos encontrados naquele período em um subdiretório 2 e se encontrar uma duplicata, deve renomear esse arquivo como duplicate_namefile_ori .

    
por Gianfilippo Evola 03.06.2016 / 13:23

1 resposta

1

Você pode emitir o seguinte comando:

find dir1/ -type f -newermt "2016-01-13" ! -newermt "2016-02-23"  -exec cp -b -S _duplicate  '{}' dir2 \;

copiará os arquivos em dir1 com tempo de modificação entre 2016-01-13 e 2016-02-23 para dir2 e anexando o sufixo < em> _duplicate para os arquivos duplicados no diretório de destino.

Se você precisar fazer isso com o tempo de criação , use -newerBt em vez de -newermt . ext4 , já que a maioria dos sistemas de arquivos unix / linux não armazena o tempo de criação dos arquivos, portanto, não funcionará no Ext4 / Linux.

Você pode verificar quais registros de data e hora estão sendo armazenados com o comando stat <filename> .

    
por 03.06.2016 / 15:59