rsync
é uma boa solução, mas se você está procurando uma alternativa:
Digamos que temos um diretório "test" contendo os diretórios "foo, bar, baz". Nestes dirs existem vários tipos de arquivos diferentes:
test
|____bar
| |____1.jpg
| |____1.png
| |____1.txt
| |____2.jpg
| |____2.png
| |____2.txt
|____baz
| |____1.avi
| |____2.avi
| |____3.png
|____foo
| |____test.blah
|____test.txt
Queremos copiar tudo, exceto os PNGs
scp $(find /location/of/test -type f ! -name "*.png") # -> Note the logical NOT!!
Neste exemplo, o comando colocará todos os arquivos no mesmo diretório de destino - isso pode não ser o comportamento desejado.