Encontre o padrão e mova-se

Encontre o padrão e mova-se

Gostaria de saber se alguém sabe como encontrar um padrão e depois movê-lo para um local diferente.

Por exemplo, tenho muitos arquivos chamados:

odbc.ini_20110630
odbc.ini_20110639
odbc.ini_20110643
etc...

Quero pesquisar o padrão de apenas odbc.inie mover todos eles para uma pasta diferente.

Não estou muito familiarizado com a execução de dois comandos ao mesmo tempo (tubulação).

Responder1

Você pode usar

find . -name "odbc.ini*" -exec mv {} destination \;

Isso pressupõe que seus arquivos estejam na hierarquia de diretórios começando no diretório atual ..

Responder2

se os arquivos estiverem todos em um único diretório e você não precisar de nenhuma recursão:

shopt -s nullglob
mv odbc.ini* /new/directory/

se você precisar de recursão:

find "${dir:-.}" -type f -name 'odbc.ini*' -exec mv {} /new/directory \;

Outra abordagem poderia ser, extglobmas deixarei isso como exercício para o leitor =]

Responder3

Se todos os arquivos estiverem no mesmo diretório:

mv /path/to/source/odbc.ini* /path/to/destination

Se você também deseja mover arquivos em subdiretórios:

shopt -s globstar      # put this line in your ~/.bashrc
mv /path/to/source/**/obdc.ini* /path/to/destination

informação relacionada