GNU/Linux >> Linux Esercitazione >  >> Linux

Come copiare file con estensione di file specifica in modo ricorsivo

In Linux, il comando 'cp ', quali standard per 'Copia ' viene utilizzato per copiare file e cartelle in un'altra cartella. È disponibile per impostazione predefinita in Linux come parte di GNU Coreutils set di strumenti.

L'uso più elementare del comando cp è specificare i file da copiare come argomenti e specificare la cartella di destinazione come ultimo argomento.

$ cp file1 file2 file3... fileN target_folder/

Copia file con estensioni di file specifiche

Puoi anche copiare file con la stessa estensione (es. .txt , .jpg , .mp4 ) insieme utilizzando caratteri jolly, come mostrato di seguito:

$ cp *.jpg *.mp4 *.mp3 media/

Questo copierà tutti i JPEG immagini, MP3, e MP4 file multimediali nella cartella "media '. Si noti che questo può essere utilizzato solo per i file. Se provi a copiare le cartelle nel formato precedente, viene visualizzato un avviso che la cartella è "Non vuota '.

Per copiare le cartelle, dobbiamo specificare il '-r' (ricorsivo ) bandiera. Ricorsivo significa che verranno copiati tutti i file in quella cartella, i file nelle sottocartelle e così via.

$ cp -r folder1/ folder2/ file1 file2 target_folder/

Tuttavia, non c'è modo all'interno di 'cp' per copiare file di un'estensione specifica in modo ricorsivo. Ogni volta che '-r' è specificato, il programma considera sempre tutti i file nelle sottocartelle per la copia.

Trova e copia file con estensione file

Per ottenere ciò, utilizziamo il comando trova, che viene semplicemente utilizzato per cercare file e cartelle in Linux in base ai parametri del file o della cartella:nome file, estensione, dimensione, ecc.

Useremo il comando trova per individuare ricorsivamente i file con un'estensione di file specifica e quindi passare questo output a cp comando per copiarli.

Sintassi per individuare i file di un'estensione specifica utilizzando il comando trova è:

$ find <folder_to_search> -name ‘*.<extension>

Ad esempio, per individuare ricorsivamente tutti i file JPG nella cartella corrente:

$ find . -name '*.jpg'

Infine, dobbiamo reindirizzare questo output al comando cp . Per fare ciò, utilizziamo 'xargs' comando per creare 'cp' considera l'output di 'trova' come suoi argomenti. Inoltre, utilizziamo il '-t' bandiera di cp , per specificare la directory di destinazione, senza la quale il programma considera l'output di 'find' come directory di destinazione.

$ find . -name '*.jpg' | xargs cp -t Pictures2/

Quindi, tutti i file con estensione '.jpg' sono stati copiati nella cartella 'Pictures2' .

Conclusione

In questo articolo, abbiamo imparato come copiare file con un'estensione specifica in modo ricorsivo in Linux. Nota che questo metodo è utile se hai a che fare con un numero inferiore di file. Per un numero enorme di file (ad esempio, in decine di migliaia), è necessario utilizzare un approccio diverso per copiare i file in modo ricorsivo.

Se hai domande o feedback, faccelo sapere nei commenti qui sotto.


Linux
  1. Come utilizzare Inotifywait per guardare una directory per la creazione di file di un'estensione specifica?

  2. Come copiare ricorsivamente i file per estensione del file??

  3. Come nascondere i file con un'estensione specifica?

  4. Come eliminare file con estensione specifica nella riga di comando di Linux

  5. Come trovare tutti i file con dimensione del file zero (0) byte in una directory in modo ricorsivo

Come copiare file e directory in Linux

Come eseguire il tar di tipi di file specifici (estensioni) in una directory

Come rimuovere file con estensione specifica in Linux

Come escludere un'estensione di file specifica durante la copia ricorsiva di file

Come copiare file e directory nel terminale Linux

Come aggiungere un'opzione per creare un nuovo file con un'estensione specifica nel menu di scelta rapida?