Sto cercando di copiare tutti i file e le cartelle da una directory all'altra, ma escludo determinati file. In particolare, voglio escludere file e cartelle di sovversione. Tuttavia, vorrei una soluzione generale ma concisa.
Immagino che troverò la necessità di escludere diversi tipi di file nel prossimo futuro. Ad esempio, potrei voler escludere .svn, * .bak e * .prj.
Ecco cosa ho messo insieme così, ma non funziona per me. La prima parte, trova le opere, ma sto facendo qualcosa di sbagliato in xargs e cp . Ho provato cp con e senza il -R
. Inoltre, sto usando OS X e sembra avere una versione meno funzionante di xargs rispetto ai sistemi Linux.
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
bandiera, ne sono abbastanza sicuro. Rimuovilo e dovresti stare bene (anche se potresti voler aggiungere -mindepth 1
per ignorare la cartella della directory di livello superiore che non vuoi copiare, suppongo)
find
comando viene utilizzato correttamente-prune
per escludere gli elementi .svn, si passa quindi il-R
flag acp
cui si dice che quel comando è ricorsivo. Quando lo fa, perdi la granularità che hai avuto nelfind
comando. Ho intenzione di armeggiare con questo per un minuto, ma penso che la risposta non sia usare-R
nelcp
comando.