GNU/Linux >> Tutoriales Linux >  >> Linux

Copie un rango de archivos en la línea de comandos (ZSH/BASH)

Solución 1:

Estabas muy cerca. Su pregunta era casi la sintaxis correcta:

cp P10802{75..83}.JPG ~/Images

Solución 2:

Para iterar sobre un rango en bash:

for x in {0..10}; do echo $x; done

Aplicando lo mismo en su caso:

for x in {272..283}; do cp P1080$x.JPG ~/Images; done

Solución 3:

Zsh, con la opción extendedglob tiene el globbing (coincidencia de patrones) operador.

setopt extendedglob
echo P10802<75-83>.JPG

coincidirá con los nombres de archivo en el directorio actual que coincidan con ese patrón (tenga en cuenta que P1080275.JPG coincide, pero también P108020000000075.JPG)

Por otro lado, el operador de expansión de cadena {x...y} (compatible con zsh y versiones recientes de bash y ksh93), se expande a las cadenas de x a y, independientemente de los archivos que haya en el directorio actual.

cp P10802<75-83>.JPG ~there

copiará los archivos coincidentes, también lo hará

cp P10802{75..83}.JPG ~there

Pero obtendrá errores si, por ejemplo, P1080281.JPG no existe.


Linux
  1. Consejos de Bash para el día a día en la línea de comandos

  2. 5 herramientas de línea de comandos para encontrar archivos rápidamente en Linux

  3. ¿Comando no encontrado en Zsh, pero encontrado en Bash?

  4. Argumentos de la línea de comando para ejecutar la ventana acoplable

  5. Bash si está en una sola línea

Cómo leer archivos línea por línea en Bash

Comando Cp en Linux (Copiar archivos)

Cómo usar el comando cp para copiar archivos y directorios

Cómo mostrar el historial de Bash sin números de línea

Copie un archivo a varios directorios desde la línea de comandos en Linux

Copie archivos de forma segura con el comando SCP