GNU/Linux >> Linux Esercitazione >  >> Linux

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

Il mio disco rigido esterno è un pasticcio. Sì perché ho scaricato tutti i file in una singola directory. Ero semplicemente troppo pigro per organizzare file e cartelle nell'ordine giusto. Mi ci è voluto più tempo quando stavo cercando un file particolare. Quindi, ho pensato che sarebbe stato molto meglio organizzare un determinato tipo 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) vadano in una directory denominata Multimedia , file immagine in Immagini cartella e gli elementi ufficiali correlati in una cartella denominata otechnix .

Tuttavia, trovare e copiare manualmente un particolare tipo di file è un'operazione noiosa e che richiede molto tempo. Ci vorranno ore per trovare e copiare tutti i file se si dispone 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 in sistemi operativi simili a Unix, ecco un modo per farlo. Potrebbero esserci molti modi per farlo, ma ho scoperto che il metodo seguente è facile e semplice da seguire.

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

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

Scarica - eBook gratuito:"Beyond Linux® From Scratch - Version 6.3"

Controlliamo il contenuto della directory di test.

$ ls /home/sk/test1

Risultato di esempio:

'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 farlo, 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 in sistemi simili a Unix.
  • -iname '*.mp3' - Cerca file corrispondenti con estensione .mp3.
  • -exec cp - Ti dice di eseguire il comando 'cp' per copiare i file dalla directory di origine a quella di destinazione.
  • {} - viene automaticamente sostituito con il nome file dei file trovati dal comando 'trova'.
  • /home/sk/test2/ - Directory di destinazione per salvare i file corrispondenti.
  • \; - Indica che i comandi da eseguire sono ora completi, e di eseguire nuovamente il comando alla prossima partita.

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 directory diverse a 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 -maxdepth bandiera. 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 vuoi 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 directory diverse. Maggiori dettagli possono essere trovati nel link riportato di seguito.

  • Come organizzare automaticamente tipi simili di file in cartelle specifiche

Spero che questo aiuti.


Linux
  1. Come trovare il numero di file in una directory e sottodirectory

  2. Come copiare o clonare i permessi da un file all'altro su Linux

  3. Come spostare (e sovrascrivere) tutti i file da una directory all'altra?

  4. Come rinominare più file da un'estensione all'altra in Linux / Unix?

  5. Come posso copiare un file/cartella dalla home directory di un altro utente in Linux?

Come copiare file e directory in Linux

Come contare i file nella directory in Linux

Come trovare ed eliminare file duplicati in Linux

Come trovare file duplicati in Linux e rimuoverli

Come copiare file e directory nel terminale Linux

Come copiare un file da un'altra directory a quella corrente?