Linux/Unix Shell Scripting - Directorios aleatorios y archivos vacíos dentro

 
Vista:
sin imagen de perfil

Directorios aleatorios y archivos vacíos dentro

Publicado por Gemma Chamorro (2 intervenciones) el 25/04/2018 04:59:49
Muy buenas. Estoy volviéndome loca con un script y mis pocos conocimientos. La idea es crear 25 carpetas con un número aleatorio (eso lo consigo) y después un archivo vacío en su interior. Estoy teniendo problemas con las rutas ya que no puedo usar “comodines” a la hora de escribir las rutas generadas por la variable random inicial.

A ver si entre todos conseguimos resolverlo. Un millón de gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de xve
Val: 104
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Directorios aleatorios y archivos vacíos dentro

Publicado por xve (309 intervenciones) el 25/04/2018 07:58:21
Hola Gemman, la verdad es que no se como ayudarte sin ver el código...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Directorios aleatorios y archivos vacíos dentro

Publicado por Gamma Chamorro (2 intervenciones) el 25/04/2018 12:31:24
Hola de nuevo, tienes razón.

1
2
3
4
for run in {1..20}
                do
                        mkdir -p /principal/compo%$((RANDOM%100))
                done

Con esto lo que hago es crear 20 carpetas con una terminación aleatoria [compo%25 por ejemplo]
La idea es que me cree un archivo vacío con touch dentro de cada una de las carpetas que se han creado. Mi problema es que no se como escribir que haga eso ya que la ruta de las carpetas diferente para cada una y es aleatoria. He intentado poniendo la ruta absoluta con el final con ?? o * pero para directorios entiendo que no vale.

Resumido:

Crear 20 directorios aleatorios.
Dentro de estos un archivo vacio y con el mismo nombre.

Seguro que es fácil pero yo no lo veo. He provado con if, con find y con pipes pero siempre mi problema es el tema de las rutas.

Gracias nuevamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de abzerox
Val: 101
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Directorios aleatorios y archivos vacíos dentro

Publicado por abzerox (27 intervenciones) el 26/04/2018 05:54:41
Hola Gamma, agrege algunas cosas a tu código quizas te sirva:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
src="principal"
for run in {1..20}
do
	# Comprueba que la carpeta no exista previamente,
	# en caso de existir vuelve a generar el nombre hasta que esta no exista
      	# para así poder crearla.
	# Esto es necesario, ya que si no pude suceder que se genere un nombre ya existente y 
	# por ende se crearan menos carpetas de las devidas.	
	while [[ true ]]; do
		name=$((RANDOM%100))
		if [[ ! -e $src"/compo%"$name ]]; then
			mkdir -p $src"/compo%"$name
			touch "$src/compo%$name/compo%$name"
			break;
		fi
	done
done


Comentanos si es lo que buscabas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar