Ricerca nel sito web

Trova e copia determinati tipi di file da una directory all'altra


Il mio disco rigido esterno è un disastro. Sì, perché ho scaricato tutti i file in un'unica directory. Ero semplicemente troppo pigro per organizzare file e cartelle nel giusto ordine. Mi ci è voluto più tempo quando cercavo un file particolare. Quindi, ho pensato che sarebbe stato molto meglio organizzare determinati tipi di file in directory separate. Ho deciso di creare cartelle per ogni tipo di file e di archiviare i file nelle rispettive cartelle. Supponiamo ad esempio che tutti i file multimediali (audio e video) debbano andare in una directory chiamata Multimedia, i file di immagine nella cartella Immagini e i contenuti ufficiali correlati in una cartella chiamata ostechnix.

Tuttavia, trovare e copiare manualmente ciascun particolare tipo di file è un compito noioso e dispendioso in termini di tempo. Ci vorranno ore per trovare e copiare tutti i file se disponi di un numero elevato di file. Quindi, ho fatto una rapida ricerca su Google e ho trovato una soluzione adatta. Se hai mai desiderato copiare determinati tipi di file da una directory all'altra nei sistemi operativi Linux e simili a Unix, ecco un modo per farlo. Potrebbero esserci molti modi per farlo, ma ho scoperto che il seguente metodo è facile e semplice da seguire.

Trova e copia determinati tipi di file da una directory all'altra in Linux

Utilizzeremo il comando "trova" per organizzare i file. Il comando Find è preinstallato sulla maggior parte delle distribuzioni simili a Unix, quindi non preoccupiamoci di installarlo. Ai fini di questa guida, mostrerò come trovare e copiare rapidamente file mp3 da una directory chiamata test1 a un'altra directory chiamata test2.

Controlliamo il contenuto della directory test.

ls /home/sk/test1

Esempio di output:

'Bombay Rockers.mp3' 'Marconi Union - Sleepless.mp3' wiua9.jpg
 books.txt Maruvaarthai.mp3

Come puoi vedere nel risultato sopra, ci sono tre file mp3 nella directory test1. Copiamo questi file mp3 nella directory test2. Per fare ciò, vai alla directory test1 usando il comando:

cd /home/sk/test1/

Quindi, esegui il comando seguente per trovare e copiare tutti i file che corrispondono all'estensione .mp3.

find -iname '*.mp3' -exec cp {} /home/sk/test2/ \;

Analizziamo il comando precedente e vediamo cosa fa ciascuna opzione.

  • trova - È il comando per trovare file e cartelle nei sistemi simili a Unix.
  • -iname '*.mp3': cerca file corrispondenti all'estensione .mp3.
  • -exec cp: indica di eseguire il comando 'cp' per copiare i file dalla directory di origine a quella di destinazione.
  • {} - viene automaticamente sostituito con il nome dei file trovati dal comando "trova".
  • /home/sk/test2/: directory di destinazione in cui salvare i file corrispondenti.
  • \; - Indica che i comandi da eseguire sono ora completi e di eseguire nuovamente il comando alla partita successiva.

Chiaro? Bene! Ora controlliamo la directory test2 per verificare se i file sono stati copiati correttamente.

ls /home/sk/test2

L'output di esempio sarebbe:

'Bombay Rockers.mp3' Maruvaarthai.mp3
'Marconi Union - Sleepless.mp3'

Come puoi vedere, tutti i file con estensione .mp3 sono stati copiati dalla directory test1 alla directory test2. Allo stesso modo, puoi copiare altri tipi di file in diverse directory di tua scelta come descritto sopra.

Il comando precedente copierà tutti i file *.mp3 dalla directory di origine e anche dalle sue sottodirectory. Se non vuoi farlo, usa il flag -max Depth. Ad esempio, il comando seguente copierà tutti i file .mp3 solo dalla directory di origine, ma non dalle sue sottodirectory.

find -maxdepth 1 -iname '*.mp3' -exec cp {} /home/sk/test2/ \;

In questo modo puoi risparmiare molto tempo quando desideri trovare un particolare tipo di file. Questo trucco potrebbe essere utile quando devi trasferire grandi quantità di diversi tipi di file da una directory all'altra.

Lettura correlata:

  • Copia tipi di file specifici mantenendo la struttura delle directory in Linux

Per maggiori dettagli, fare riferimento alle pagine man.

man find

C'è anche uno script chiamato 'Classifier' che organizzerà automaticamente i tuoi file in base all'estensione del file in diverse directory. Maggiori dettagli possono essere trovati nel link indicato di seguito.

  • Come organizzare automaticamente tipi di file simili in cartelle specifiche

Spero che questo ti aiuti.

Articoli correlati