Esta resposta não leva em consideração a restrição "não mais do que 1 dia".
Em vez de tentar analisar a saída de find , use rsync diretamente de find :
find /mnt/IP/ftp/123 -type -name '1[14].*' -prune \
-exec rsync -av \
--include='*.bin' --include='*/' \
--exclude='*' --prune-empty-dirs {} /home/ftp/123 ';'
Isso localizaria os diretórios cujos nomes começam com 11. ou 14. em ou abaixo de /mnt/IP/ftp/123 . Para cada diretório, ele removeria o diretório da lista de pesquisa (com -prune ) e executaria
rsync -av --include='*.bin' --include='*/' \
--exclude='*' --prune-empty-dirs {} /home/ftp/123
onde {} seria substituído pelo nome do caminho do diretório encontrado.
O comando rsync criaria um subdiretório de /home/ftp/123 com o mesmo nome de arquivo do diretório encontrado (por exemplo, começando com 11. ou 14. ) e copiando os arquivos .bin .
Os padrões de inclusão e exclusão usados com rsync (a primeira partida vence):
-
--include='*.bin': inclua qualquer arquivo cujo nome de arquivo termine com.bin. -
--include='*/': inclua qualquer diretório. Os diretórios vazios no destino serão removidos devido a--prune-empty-dirs. -
--exclude='*': exclua qualquer coisa não incluída nas regras anteriores.