move o comando no linux para mover múltiplos arquivos da mesma extensão mas de um ano diferente

0

Tenho cerca de 500 arquivos .txt do ano de 2013 a 2015 colocados em uma pasta e preciso mover todos os arquivos do ano de 2013 e do ano de 2014 para uma pasta diferente.

    
por Aryan 08.12.2015 / 22:37

2 respostas

0

Supondo "do ano de 2013 e do ano de 2014" significa "com tempo de modificação em 2013/2014", você pode obter a lista de arquivos com:

stat -c '%y %n' * | grep -v '^2015' | cut -d " " -f 4-

O que isso faz:

stat -c '%y %n'

Imprimir a hora da última modificação e o nome do arquivo

*

De todos os arquivos na pasta

grep -v '^2015'

Exclua os de 2015

cut -d " " -f 4-

Finalmente, retire o timestamp, deixando apenas o nome do arquivo (supondo que você não tenha nomes de arquivos estranhos com novas linhas incorporadas)

Você pode processar os arquivos com uma ferramenta como xargs ou até um loop for (se os caracteres permitirem) para movê-los para a pasta desejada.

    
por 08.12.2015 / 22:47
0

Se esses arquivos tiverem o ano em seus nomes, é bem simples. Se você está familiarizado com o terminal, aqui vai um exemplo.

Digamos que você queira mover todos os arquivos de 2013 para uma pasta chamada '2013files' e seu nome seja algo como '2013 stuff.txt' ou 'january 2013.txt'

Vá para a sua pasta

cd /path/to/your/folder/

Crie a pasta para a qual você deseja mover seus arquivos

mkdir 2013files

Em seguida, mova todos os arquivos com '2013' em seus nomes

rename  ./*2013*.txt  ./2013files

IMPORTANTE: antes de usar o comando 'rename', use 'cp' para ter certeza de que você não digitou nada, ou você pode acabar com apenas um arquivo.

IMPORTANTE (2): backup de seus arquivos, sempre, antes de qualquer coisa

    
por 08.12.2015 / 22:52