Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/07/2010, 13:42
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Copiar ficheros aleatoriamente en Linux ¿ usar comando find ?

Hola,

Cita:
Iniciado por KbzaJunior Ver Mensaje
...
Si esa serie de comandos que has dicho, lo meto dentro de algun bucle que se repita por ejemplo, 400 veces, obtendré 400 ficheros mp3, verdad?
...
El programa 'head' toma la cantidad de líneas especificada en el parámetro 'n' que por defecto son 10. En el siguiente caso va a tomar 400 ficheros al azar sin repetirse, si los nombres de ficheros no se repiten dentro del árbol de directorios.

Código:
find . -iname '*.mp3' -print | shuf | head -n 400 | xargs -I '{}' cp '{}' /tmp
Esa línea funciona con bash 3 y cygwin (son parte de Core Utils), tendrías que consultar la documentación de la versión de bash que estas usando para asegurarte que funciona correctamente.

Cita:
Iniciado por KbzaJunior Ver Mensaje
...
Pero claro..... no vale que pueda cojer algun mp3 ya repetido, como podria comprobar que ya no estubiera copiado?
Se me ocurre, sacar a un fichero el resultado mediante >, pero luego, no sabria como leerlo para saber si los numeros están repetidos....
En ese caso necesitas un script más complejo, para manejar un listados de archivos ya copiados sería necesario crear una aplicación en algún lenguaje de programación interpretado como Perl, Python, Ruby, etc.

Como son lenguajes diseñados para realizar este tipo de tareas no pasará de 20-40 líneas dicho programa usando búsqueda recursiva y arrays, consulta en el sub-foro del lenguaje con el que te sientas mas cómodo si fuera necesario.

Saludos,

Última edición por HackmanC; 14/07/2010 a las 13:55 Razón: Core Utils