eu enfrentei um problema algo como isto ...
Na verdade, de duas maneiras, você pode processar a find
saída do copy
comando no comando
Se find
a saída do comando não contiver nenhum espaço, ou seja, se o nome do arquivo não contiver espaço, você poderá usar o comando abaixo mencionado:
Sintaxe: find <Path> <Conditions> | xargs cp -t <copy file path>
Exemplo: find -mtime -1 -type f | xargs cp -t inner/
Mas na maioria das vezes nossos arquivos de dados de produção podem conter espaço nele. Portanto, a maior parte do tempo abaixo do comando mencionado é mais segura:
Sintaxe: find <path> <condition> -exec cp '{}' <copy path> \;
Exemplo find -mtime -1 -type f -exec cp '{}' inner/ \;
No segundo exemplo, a última parte, ou seja, ponto-e-vírgula, também é considerada como parte do find
comando, que deve ser escapada antes de pressionar o botão Enter. Caso contrário, você receberá um erro semelhante a este
find: missing argument to `-exec'
No seu caso, a sintaxe do comando copy está incorreta para copiar o arquivo find /home/shantanu/tosend
. O seguinte comando funcionará:
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp {} /home/shantanu/tosend \;
\;
?