comando move no linux para mover vários arquivos da mesma extensão, mas de anos diferentes

comando move no linux para mover vários arquivos da mesma extensão, mas de anos diferentes

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 2014 para alguma outra pasta.

Responder1

Supondo que "do ano 2013 e ano 2014" significa "com data 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:

estatística -c '%y %n'

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

*

De todos os arquivos da pasta

grep -v '^2015'

Excluir os de 2015

cortar -d " " -f 4-

Por fim, retire o carimbo de data/hora, deixando apenas o nome do arquivo (supondo que você não tenha nomes de arquivos estranhos com novas linhas incorporadas)

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

Responder2

Se esses arquivos tiverem o ano em seus nomes, é bastante 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 seus nomes são algo como '2013 stuff.txt' ou 'january 2013.txt'

Vá para sua pasta

cd /path/to/your/folder/

Crie a pasta para onde 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 não digitou nada errado, ou você pode acabar com apenas um arquivo.

IMPORTANTE (2): faça backup dos seus arquivos, sempre, antes de qualquer coisa

informação relacionada