me enfrentaba a un problema algo como esto ...
En realidad, en dos formas en que puede procesar la salida find
mando en copy
comando
Si la salida find
de comando no contiene ningún espacio es decir, si el nombre del archivo no contiene espacio en él, puede utilizar el siguiente comando:
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 puede contener espacio en él. Así que la mayoría de tiempo por debajo mencionado comando 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, semi-colon también se considera como parte de find
comando, debe escaparse antes de presionar el botón enter. De lo contrario obtendrá un error como este algo
find: missing argument to `-exec'
En su caso, copia sintaxis del comando es incorrecta con el fin de copiar encontrar el archivo en /home/shantanu/tosend
. El siguiente comando funcionará:
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp {} /home/shantanu/tosend \;
¿Cuál es el propósito de '\; '? – Astrid
@Astrid check [this] (http://unix.stackexchange.com/questions/12902/how-to-run-find-exec) – shellbye
Ahh Veo @shellbye - gracias – Astrid