GNU/Linux >> Linux Esercitazione >  >> Linux

Copia un intervallo di file nella riga di comando (ZSH/BASH)

Soluzione 1:

Eri molto vicino. La tua domanda era quasi la sintassi corretta:

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

Soluzione 2:

Per iterare su un intervallo in bash:

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

Applicando lo stesso nel tuo caso:

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

Soluzione 3:

Zsh, con l'opzione extendedglob ha il globbing (pattern matching) operatore.

setopt extendedglob
echo P10802<75-83>.JPG

corrisponderà ai nomi di file nella directory corrente che corrispondono a quel modello (attenzione che P1080275.JPG corrisponde ma anche P108020000000075.JPG)

Dall'altra parte, l'operatore di espansione delle stringhe {x...y} (supportato da zsh e versioni recenti di bash e ksh93), espande le stringhe da x a y, indipendentemente dai file presenti nella directory corrente.

cp P10802<75-83>.JPG ~there

copierà i file corrispondenti, così farà

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

Ma otterrai errori se, ad esempio, P1080281.JPG non esiste.


Linux
  1. Codici di uscita della riga di comando di Bash demistificati

  2. Differenza tra "e" sulla riga di comando (bash)??

  3. Passare gli argomenti della riga di comando allo script Bash?

  4. Comando non trovato in Zsh, ma trovato in Bash?

  5. 5 Completamento standard disponibile nella riga di comando di Linux Bash

Come leggere i file riga per riga in Bash

Comando Cp in Linux (copia file)

Come utilizzare il comando cp per copiare file e directory

Come visualizzare la cronologia di Bash senza numeri di riga

Copia un file in più directory dalla riga di comando su Linux

Copia i file in modo sicuro con il comando SCP