Me enfrenté a un problema como este ...
En realidad, de dos maneras puede procesar la find
salida del copy
comando en el comando
Si find
la salida del comando no contiene ningún espacio, es decir, si el nombre del archivo no contiene espacio, puede usar el comando mencionado a continuación:
Sintaxis: find <Path> <Conditions> | xargs cp -t <copy file path>
Ejemplo: find -mtime -1 -type f | xargs cp -t inner/
Pero la mayoría de las veces nuestros archivos de datos de producción pueden contener espacio. Entonces, la mayoría de las veces el comando mencionado a continuación es más seguro:
Sintaxis: find <path> <condition> -exec cp '{}' <copy path> \;
Ejemplo find -mtime -1 -type f -exec cp '{}' inner/ \;
En el segundo ejemplo, la última parte, es decir, el punto y coma, también se considera parte del find
comando, que se debe escapar antes de presionar el botón Intro. De lo contrario, obtendrá un error similar a este
find: missing argument to `-exec'
En su caso, la sintaxis del comando copiar es incorrecta para copiar el archivo de búsqueda en /home/shantanu/tosend
. El siguiente comando funcionará:
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp {} /home/shantanu/tosend \;
\;
?