GNU/Linux >> Linux Esercitazione >  >> Linux

File specifici di Linux (mv o cp) da un elenco di file di testo?

Soluzione 1:

Per evitare un uso inutile di cat (e se non usi rsync ):

xargs -a file_list.txt mv -t /path/to/dest

Questo gestirà qualsiasi nome di file valido, a meno che non contenga una nuova riga, se i file sono elencati uno per riga.

Soluzione 2:

rsync ha diverse opzioni che possono richiedere un elenco di file da elaborare (--files-from , --include-from , ecc.).

Ad esempio, questo funzionerà:

rsync -a /source/directory --files-from=/full/path/to/listfile /destination/directory

Soluzione 3:

for file in `cat listoffiles`; do mv "$file" /path/of/destination ; done

assumendo bash, più listoffiles contenente un file per riga. La mia unica obiezione alla rotta rsync è che l'OP richiede un metodo per spostare i file, non per copiarli. rsync ha più bandiere di un matrimonio reale, quindi sono sicuro che può essere ulteriormente modificato per farlo, ma a volte più semplice è meglio!

Soluzione 4:

rsync --files-from=file_list.txt /path/to/source/ /path/to/dest/

Rsync ha l'ulteriore vantaggio rispetto a cp o mv comandi perché creerà automaticamente le cartelle se non esistono.

Soluzione 5:

Questo dipende dal formato del file di testo che hai. Ad esempio, se l'elenco dei file è scritto in modo tale che Ogni file si trovi su una nuova riga. Puoi usare xargs come:

$ cat your_text_file | xargs cp -t /path/to/destination

Inoltre, puoi usare find comando con -exec opzione. per copiare/spostare i file.


Linux
  1. Esempi pratici di comando rsync in Linux

  2. Accelera la sincronizzazione durante la migrazione di un server Linux dalla riga di comando

  3. Comando Linux ls - Elenca file

  4. Come distinguere il binario dai file di testo in Linux

  5. Come trovo tutti i file contenenti testo specifico su Linux?

Grep Command in Linux (Trova testo nei file)

Esempi di Rsync per trasferire file in Linux

Come trovare file contenenti una stringa di testo specifica in Linux

Trova testo nei file su Linux usando grep

Come sincronizzare file/cartelle da una data specifica in avanti?

RDP da Linux a Windows