2 votos

Copia los archivos buscados con encontrar un comando usando el comando xargs

Me gustaría copiar los archivos de búsqueda en find comando en el directorio actual. Yo soy la ejecución de la siguiente línea de comandos:

    # find linux books
$ find ~ -type f -iregex '.*linux.*\.pdf' -print0 | xargs -0 echo
    # Expected output on STDOUT
../Books/LinuxCollection/Linux_TLCL-17.10.pdf ../Richard Blum, Christine Bresnahan - Linux Command Line and Shell Scripting Bible, 3rd Edition - 2015.pdf ..

Quiero copiar los archivos en el directorio actual con el cp comando. Este es el comando que me entró:

$ find ~ -type f -iregex '.*linux.*\.pdf' -print0 | xargs -0 cp .

Sin embargo, me da un error como se muestra a continuación al ejecutar el comando anterior:

usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory

También he tratado de resolver el problema mediante la sustitución de comandos. Este es el comando que he intentado:

$ cp $(find ~ -type f -iregex '.*linux.*\.pdf' -print0) .

Sin embargo, me sale otro error como se muestra a continuación al ejecutar el comando anterior:

cp: Blum,: No such file or directory

¿Cómo puedo lograr el resultado deseado utilizando el xargs comando?

2voto

xargs agrega su entrada para el comando, por lo que básicamente se está ejecutando cp . source_file. Uso

find ~ -type f -iregex '.*linux.*\.pdf' -print0 | xargs -I '{}' -0 cp '{}' .

en su lugar.

1voto

Nimesh Neema Puntos 69

Usted también puede lograr el resultado deseado fácilmente sin el uso de xargs comando como se indica a continuación:

find ~ -type f -iregex '.*linux.*\.pdf' -print0 -exec cp {} . \;

Hace que para una simple línea de comandos y no implica la tubería.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X