Como copiar recursivamente todos os arquivos com menos de 1 dia?

2

Como copiar recursivamente todos os arquivos com menos de 1 dia?

Eu tentei pela primeira vez

find . -amin -1440 | xargs cp /dest

Mas isso não funciona porque os itens dados a xargs devem ser posicionados antes do argumento /dest .

    
por Ortomala Lokni 14.11.2015 / 15:20

1 resposta

7

Você pode usar a opção -t do GNU cp :

   -t, --target-directory=DIRECTORY
          copy all SOURCE arguments into DIRECTORY

Você também deve usar find e -print0 de xargs -0 , caso contrário, isso falhará nos nomes de arquivos com espaços ou outros caracteres estranhos:

find . -amin -1440 -print0 | xargs -O cp -t /dest

Uma abordagem melhor pode ser usar find e evitar xargs :

find . -amin -1440 -exec cp -t /dest {} +

Finalmente, uma vez que você mencionou "arquivos", você pode querer pular diretórios, links simbólicos e outras bestas estranhas e dizer a find para procurar apenas por arquivos regulares:

find . -type f -amin -1440 -exec cp -t /dest {} +
    
por 14.11.2015 / 15:26

Tags