Como copiar o arquivo usando o awk com base na criação de tempo para algum diretório

0

Estou tentando copiar um arquivo para o diretório usando o filtro do awk com base no arquivo de criação de hora

#!/bin/bash
dir=/home/resaputra23/pyexample/python2/*
des=/home/resaputra23/pyexample/backup/
file1= stat $dir | awk {'print $2'} | grep 2014

for i in $file1
do
cp $i $des || echo "unable to copy $i"
done

Eu recebo saída

2014-12-02
2014-12-01
2014-12-28

Mas nenhum arquivo de cópia em $ des

    
por user3492614 22.04.2015 / 18:36

2 respostas

0

tente isto:

!/bin/bash
dir=/home/resaputra23/pyexample/python2/
des=/home/resaputra23/pyexample/backup/
#insert your prefered since date    
sincedate="2015-01-01"
find $dir -newermt "$sincedate" > files.txt
while read files; do
    cp $files $des
done < files.txt
rm -f files.txt
    
por 22.04.2015 / 19:18
0

Sugiro usar find . O comando a seguir selecionará e moverá todos os arquivos.

find "$Dir" -newermt "1 Jen 2014" ! -newermt "1 Jen 2015" -exec cp {} $Dest \;

Mais algumas palavras: em geral, há muitos motivos para Por que é melhor evitar analisar a saída de ls , principalmente por causa do espaço ou caracteres especiais eventualmente presentes no nome do arquivo.

Trecho de man find , para o uso da opção -newerXY

-newerXY reference
Compares the timestamp of the current file with reference. The reference argument is normally the name of a file (and one of its timestamps is used for the comparison) but it may also be a string describing an absolute time. X and Y are placeholders for other letters, and these letters select which time belonging to how reference is used for the comparison.

       a   The access time of the file reference  
       B   The birth time of the file reference  
       c   The inode status change time of reference  
       m   The modification time of the file reference  
       t   reference is interpreted directly as a time  
    
por 22.04.2015 / 20:05

Tags