GNU/Linux >> Linux Esercitazione >  >> Linux

Copia tutti i file che corrispondono al modello dalla directory e dalle sottodirectory in un'unica directory

Prova:

find src/ -type f | grep -i so$ | xargs -i cp {} dst

Se stai usando Bash, puoi attivare globstar opzione di shell per abbinare file e directory in modo ricorsivo:

shopt -s globstar
cp src/**/*.so dst

Se hai bisogno di trovare file i cui nomi iniziano con . , e/o file in e sotto directory i cui nomi iniziano con . ,imposta dotglob anche l'opzione (ad esempio, con shopt -s dotglob ). Puoi impostarli entrambi in un comando:

shopt -s globstar dotglob

Ho provato il comando suggerito da Mike:

find src/ -type f | grep -i so$ | xargs -i cp {} dst

ma ha finito per scaricare tutti i file nella directory dst con i relativi percorsi perduti.

Per mantenere i percorsi relativi il comando deve essere modificato in questo:

find src/ -type f | grep -i so$ | xargs -i cp {} dst/{}

Linux
  1. Come trovare e copiare determinati tipi di file da una directory all'altra in Linux

  2. Concatenare file specifici in un unico file?

  3. Script / comando per ottenere Ips dall'elenco dei nomi host e combinarli in un unico file?

  4. Comando per elencare tutti i file tranne . (punto) e .. (punto punto)

  5. Come copiare i file dal dockerfile all'host?

Copia i file tra Linux e FreeDOS

3 modi per estrarre e copiare file dall'immagine ISO in Linux

Come copiare file e directory in Linux

Come utilizzare il comando cp per copiare file e directory

Elimina i file .DS_STORE nella cartella corrente e tutte le sottocartelle dalla riga di comando su Mac

Elimina i file corrispondenti in tutte le sottodirectory