copiar arquivos de um diretório para outro em loop


-1

Eu não sou um especialista em bash. Eu preciso escrever um script para copiar o arquivo mais recente (por data) de uma pasta para outra como segue

de

/test/a/date1.bak
/test/a/date2.bak
/test/a/date3.bak 
/test/b/date1.bak
/test/b/date2.bak
/test/b/date3.bak

para

/test/a/sec/date1.bak
/test/b/sec/date1.bak

Na segunda etapa, preciso excluir o arquivo mais antigo por data no diretório de destino

de

/test/a/sec/date1.bak
/test/a/sec/date2.bak
/test/b/sec/date1.bak
/test/b/sec/date2.bak

para

/test/a/sec/date1.bak
/test/b/sec/date1.bak


2
Bem vindo ao SU! Nós não somos um serviço de escrita de scripts. O que você tem até agora e exatamente onde você está preso?
Ƭᴇcʜιᴇ007

Eu posso copiar e excluir um por um cp $ (ls -1t | head -1) / teste / a / secure / Mas eu gostaria de fazê-lo de forma recursiva
user199857

Por favor, mostre-nos o formato de data atual que você está usando. Você deseja extrair (analisar) a data do nome do arquivo ou deseja usar a hora de modificação do arquivo?
terdon

Respostas:


0

OK, entendi. Terdon eu preciso usar data de modificação de arquivos. Aqui o que eu fiz para a cópia do arquivo:

para BDIR em ls -1 .; do TO_BACK = $ (ls -t $ BDIR | grep ".bak $" | cabeça -1); if ["$ TO_BACK"]; em seguida, copie "copy $ BDIR / $ TO_BACK para $ BDIR / sec / $ TO_BACK"; fi; feito

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.