Estoy intentando utilizar una terminal de Linux para copiar muchos archivos a una nueva ubicación. Cansé el comando:
sudo localizar -iarchivo_yo_quiero| xargs cp $1 /place_I_want_everything_copied_to/
Lo cual, da un error. ¿Cuál es la forma correcta de manejar esto?
Respuesta1
xargs
no funciona de esa manera. No usa $1. Normalmente simplemente pospone el argumento hasta el final de la lista de parámetros. Pero en este caso no funcionará, ya que es el objetivo, no el destino y un parámetro final no es lo que se necesita.
Consulte la -i
bandera de xargs, le permite realizar una sustitución. El valor predeterminado es usar {}, supongo que para ser coherente confind
sudo locate -i *file_I_want* | xargs -i cp {} /place_I_want_everything_copied_to/
El comentario de @javano también es una respuesta, aunque se interrumpiría si hay espacios en los nombres de archivos (aunque creo que los espacios también interrumpirían el uso de xargs anterior)