GNU/Linux >> Linux Esercitazione >  >> Linux

È possibile reindirizzare i risultati di FIND a un comando COPY CP?

C'è un'opzione poco usata per cp :-t destination -- vedi la pagina man:

find . -iname "*.SomeExt" | xargs cp -t Directory

Puoi usare | come di seguito:

find . -iname "*.SomeExt" | while read line
do
  cp $line DestDir/
done

Rispondendo alle tue domande:

  • | può essere utilizzato per risolvere questo problema. Ma come visto sopra, coinvolge molto codice. Inoltre, | creerà due processi:uno per find e un altro per cp .

  • Usa invece exec() all'interno di find risolverà il problema in un unico processo.


Bella domanda!

  1. perché non puoi semplicemente usare | tubo? non è a questo che serve?

Puoi reindirizzare, ovviamente, xargs è fatto per questi casi:

find . -iname "*.SomeExt" | xargs cp Destination_Directory/
  1. Perché tutti consigliano -exec

Il -exec è buono perché fornisce un maggiore controllo su esattamente ciò che stai eseguendo. Ogni volta che esegui il pipe potrebbero esserci problemi con i casi limite:nomi di file contenenti spazi o nuove righe, ecc.

  1. come faccio a sapere quando usare quel (exec) su pipe | ?

Dipende davvero da te e ci possono essere molti casi. Userei -exec ogni volta che l'azione da compiere è semplice. Non sono un buon amico di xargs , tendo a preferire un approccio in cui find l'output viene fornito a un while ciclo, ad esempio:

while IFS= read -r result
do
    # do things with "$result"
done < <(find ...)

Linux
  1. Come controllare i permessi con il comando trova

  2. Una guida al comando "Trova" di Linux

  3. Stampa md5sum dei risultati di un comando find in Linux

  4. Come reindirizzare i risultati di "trova" a mv in Linux

  5. Come modificare i file in base ai risultati del comando find

Come trovare file con il comando fd in Linux

Risolto l'errore, impossibile trovare il comando hwmatch su Grub

Trova la riga di comando?

15 esempi super utili del comando Trova in Linux

Copia i file in modo sicuro con il comando SCP

Il comando Trova Directory di Linux:spiegato