Encuentra patrón y muévete

Encuentra patrón y muévete

Me pregunto si alguien sabe cómo encontrar un patrón y luego moverlo a una ubicación diferente.

Por ejemplo, tengo muchos archivos llamados:

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

Quiero buscar el patrón de just odbc.iniy moverlos todos a una carpeta diferente.

No estoy muy familiarizado con cómo ejecutar dos comandos a la vez (tubería).

Respuesta1

Puedes usar

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

Esto supone que sus archivos están en la jerarquía de directorios comenzando en el directorio actual ..

Respuesta2

si todos los archivos están en un solo directorio y no necesita ninguna recursividad:

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

si necesitas recursividad:

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

Otro enfoque podría ser extglobpero lo dejaré como ejercicio para el lector =]

Respuesta3

Si todos los archivos están en el mismo directorio:

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

Si también desea mover archivos en subdirectorios:

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

información relacionada