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