error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos (SOLUCIONADO)

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
stratobenja
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Mié Mar 28, 2012 6:58 am

error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos (SOLUCIONADO)

Mensaje por stratobenja » Mié Mar 28, 2012 7:14 am

Hola, soy benjamín, y tengo una duda en relación a linux, la verdad tengo varias XD pero esto es algo que me urge, y desde ya agradezco a quien tenga la amabilidad de contestar mi consulta, y de antemano informo que no soy para nada un experto en linux, pero cada dia se aprenden nuevas cosas, que nos complementan y nos hace mas conocedores XD...

pasa lo siguiente, tengo Red hat como servidor de archivos FTP.
estos datos se suben dinamicamente todos los días, y son tantos por día que por semana son muchos, sin embargo, me solicitan estos archivos respaldados por semana, para esto los copio a otro server local y los grabo en DVD a cada cliente que los solicita.

el punto es que al usar el comando "cp" me aparece este error :

-bash: /bin/cp: Argument list too long

el directorio donde guardo los archivos es /Archivelogs/2012/10

2012 es el año, y 10 es el numero de la semana que me solicitan, entonces como vemos, en la semana 10 hubo aumento de producción, por esto el aumento de archivos.

los archivos se guardan nombrados por una base de datos que define los nombres de esta forma
clienteX_fecha_hora.log

entonces lo que necesito copiar son los datos de cliente20 de la semana 10
lo que hago es

[root@server /]#cd Archivelogs
[root@server Archivelogs]# cd 2012
[root@server 2012]# cd 10
[root@server 10]# cp cliente20* /mnt/destinolocal/cliente20/semana10
-bash: /bin/cp: Argument list too long

[root@server 10]#

y no me permite filtrar los datos que necesito... una vez vi a alguien hace algo que no puedo recordar como lo hizo, esta persona copio los nombres ya filtrados a un .TXT y lo uso para copiar solo los archivos filtrados en el TXT generado...
la verdad no tengo idea como hacerlo.

de antemano muchas gracias por su ayuda, cualquiera sea la sugerencia...
Última edición por stratobenja el Jue Mar 29, 2012 5:00 am, editado 2 veces en total.
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1802
Registrado: Dom Oct 10, 2004 7:00 am

Re: error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos

Mensaje por neurus » Mié Mar 28, 2012 8:07 am

for i in `ls cliente20*`; do cp $i /mnt/destinolocal/blabla ; done

PD: ¿se te ocurrió leer el nombre del subforo en el que estás publicando?
stratobenja
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Mié Mar 28, 2012 6:58 am

Re: error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos

Mensaje por stratobenja » Mié Mar 28, 2012 5:56 pm

PD: ¿se te ocurrió leer el nombre del subforo en el que estás publicando? : lo siento, no me fije...

for i in `ls cliente20*`; do cp $i /mnt/destinolocal/blabla ; done

te refieres a crear un bash con esta instrucción? ...
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos

Mensaje por akodo » Mié Mar 28, 2012 9:34 pm

Lo puedes ejecutar tal cual (si tiene la sintaxis correcta, que supongo que sí) o lo puedes meter como script bash.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
stratobenja
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Mié Mar 28, 2012 6:58 am

Re: error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos

Mensaje por stratobenja » Mié Mar 28, 2012 11:03 pm

mmm no me resulto :/
pero lo solucione de otra forma, aunque no se si es lo mas elegante XD.

copiamos un filtro de nombres de todos los datos.

ls -t | grep EAAB0148 > archivo

entonces se generará una lista de nombres de archivos dentro de "archivo"

para editarlo usamos el comando "vi"


[root@server ~]# vi archivo

se enlistara todos los datos del documento archivo, y para editar lo hacemos de la siguiente forma.

para entrar modo edicion tecla dos puntos (:)

para cada ocurrencia de archivo se usa asi :%s/OLD/NEW/g

:%s/OLD/NEW/g

ejemplo
[root@server ~]# vi archivo
asd123
asd124
asd125
asd126
asd127
asd128
asd129
:%s/asd/cp asd/g

cp asd123.wav
cp asd124.wav
cp asd125.wav
cp asd126.wav
cp asd127.wav
cp asd128.wav
cp asd129.wav

:%s/wav/wav \/destino\/final/g

cp asd123.wav /destino/final
cp asd124.wav /destino/final
cp asd125.wav /destino/final
cp asd126.wav /destino/final
cp asd127.wav /destino/final
cp asd128.wav /destino/final
cp asd129.wav /destino/final

luego

[root@server ~]# sh archivo

gracias igual
Avatar de Usuario
t4rr1t0
Ganador CSEL 2011
Ganador CSEL 2011
Mensajes: 357
Registrado: Dom Dic 12, 2010 6:07 pm
Contactar:

Re: error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos

Mensaje por t4rr1t0 » Mié Mar 28, 2012 11:47 pm

Vaya vuelta que te diste siendo que neurus te dio la respuesta, que con tus datos quedaría así:

Código: Seleccionar todo

for a in `ls cliente20*`;do cp $a  /mnt/destinolocal/cliente20/semana10;done
Podrias, solo por curiosidad, indicar que error te dio con su solución?

salu2
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1802
Registrado: Dom Oct 10, 2004 7:00 am

Re: error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos

Mensaje por neurus » Mié Mar 28, 2012 11:56 pm

Lo que ocurre, es que primero dio un patrón: cliente20. Ahora, resulta que el patrón es asd+ un número. O tal vez, la extensión .wav. Quién sabe.
Con esa solución, no debería ni mencionar la palabra elegancia.

Pero la clave para hallar una solución, es saber cuál es el problema.
stratobenja
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Mié Mar 28, 2012 6:58 am

Re: error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos

Mensaje por stratobenja » Jue Mar 29, 2012 12:06 am

los datos son de ejemplo neurus si quieres cambia asd por cliente20.. de hecho el nombre original del cliente es un hexadecimal.
la extencion pudo haber sido .txt . log, .wav, lo use de ejemplo, el problema es SON MUCHOS DATOS PARA HACER UN SIMPLE cp Y COPIAR LOS DATOS NECESARIOS AL MI SERVER LOCAL...
y es evidente que nunca quise decir elegancia para la solucion que tuve que usar por apuro...

y de todas formas use el comando que tu pusiste y aun se esta ejecutando y no a copiado nada .... sin ofender, considero que intentaste pero quiza no fui claro con lo que pregunte, lo siento...

Editado -- Mié Mar 28, 2012 6:06 pm --

corrijo :
neurus gracias, la instruccion que me diste se demora un poco en procesar (8 min aprox) pero finalmente esta llevando los archivos...

gracias
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: error "-bash: /bin/cp: Argument list too long" al copiar muchos archivos

Mensaje por mcun » Jue Mar 29, 2012 4:57 am

stratobenja Si consideras que el tema fue resuelto, por favor edita el primer post y agrégale al título (SOLUCIONADO) para que la ayuda que recibiste le sea útil a otros usuarios mediante el uso del buscador. Muchas Gracias
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje