Tengo un montón de archivos en algún directorio (junto con muchos otros archivos) que quiero mover.
Afortunadamente, todos los archivos que quiero mover contienen un cierto identificador en sus nombres, por lo que puedo ls | grep IDENTIFIERobtener la lista exacta de archivos para mover.
Pero, ¿cómo puedo ejecutar mv file /path/to/dest/folder/de una vez, y no uno por uno (hay muchos archivos para mover)?
fuente

mv file1 file2 ... destinationls.Puedes usar comodines .
Ejemplo: para mover todos los archivos con extensión .doc
mv *.doc /path/to/dest/folder/Esto moverá todos los archivos de documentos del directorio actual al destino específico.
Editar
Para responder el comentario.
mv *.ext *.xml *.txt /path/to/dest/folder/fuente
ABC-IDENTIFIER-XYZ.exty algunos simplementeIDENTIFIER-XYZ.exttienen diferentes extensiones, en su mayoríaxmloproperties..xmlarchivos (por ejemplo) que no quiero mover.En caso de que desee mover un conjunto de archivos irrelevantes (no hay un patrón común en los nombres y tipos), puede hacer lo que dijo el Sr. Rajanand: primero vaya al directorio que contiene los archivos que desea mover
En caso de que los archivos estén dispersos en diferentes directorios, solo necesita especificar la ruta para cada archivo en el comando mover
fuente
Utilizo la técnica de tuomaz, pero ligeramente modificada:
Encuentro esto más fácil de recordar y más difícil de arruinar, ya que utiliza el mismo orden que la operación mv de vainilla:
fuente
mvno menciona una-topción.Usa este comando:
Sin embargo, ls no se recomienda para este tipo de uso. Use el comando find en su lugar.
fuente
lsNo se recomienda para este tipo de uso. Si desea enumerar archivos, especialmente con ungrepreverso, úselofind . -name \*IDENTIFIER\*.lsSi tiene tantos archivos para mover, puede tener demasiados para el
mvcomando (u otros comandos comorm). Sugiero usarxargspara mover cada archivo individualmente en un bucle como la moda. Una forma de evitar eso es hacer:El
ls -1(menos uno) asegura que solo haya un nombre de archivo en cada línea. Si tiene alias ocultos para ellscomando, puede tener varios nombres de archivo en una sola línea y mover inadvertidamente un archivo que no tenía la intención de mover.fuente
Si los archivos están en el mismo directorio, puede usar
(probado en Ubuntu 16.04)
fuente
Este comando moverá los nombres de archivo con cualquier patrón / rango al directorio de destino.
p.ej.
moverá archivos con nombres como
file1,file2...file50000atarget-directory.fuente
Puede usar la salida de ls para ingresar en mv commnad
mv $(ls | grep IDENTIFIER) /path/to/dest/dirEl comando en medio
$()devuelve una lista de los nombres de archivo que coinciden con su búsqueda, y eso se puede proporcionar como un parámetro para el comando mv.fuente
lsUsando este comando puedes mover múltiples archivos.
mv SourceFilenames ~DestinationPathfuente
La forma más fácil es así
o directorio
o ambos archivos y directorios
Espero que esto ayude
fuente