¿Cómo hacer carpetas 00-99 con un solo comando en Ubuntu?

17

Necesito crear carpetas a partir de 00 a 99 (00, 01, 02, 03, etc.) en varios cientos de lugares. ¿Hay un solo comando de línea que me permita hacer eso?

jjeaton
fuente

Respuestas:

46

La respuesta de mulaz es correcta, pero muchas personas dicen que seqes malvada porque la mayoría de los proyectiles te permitirán hacer lo siguiente

mkdir {00..99}

Sin embargo, en algunas versiones anteriores de bash, 0-9no están acolchadas, por lo que tendría que hacer

mkdir 0{0..9} {10..99}
Patricio
fuente
99
+1 Debería ser la respuesta aceptada en mi humilde opinión. No solo es este Bash idiomático, no requiere el uso de un programa externo (que seq es).
Trollhorn
1
Asi es como debería de hacerse.
foxis
77
Lo siguiente también funciona:> mkdir {0..9} {0..9}
Orieg
17

¿Con esto bastará?

for i in `seq -w 0 99`; do mkdir $i; done

realiza un bucle para los números 0-99, y "-w" establece el ancho igual (0 relleno para 0-9)

mulaz
fuente
77
seq -w 0 99 | xargs mkdirTambién haría el trabajo.
Jay
11
Puedes deshacerte del bucle y simplemente hacerlo mkdir $(seq -w 0 99). O uso backticks en lugar de $(), pero no puedo poner backticks debido a la sintaxis predeterminada del servidor.
Patrick
@Patrick: Sí, puedes: mkdir `seq -w 0 99` (No pude evitar el espacio extra). Mira aquí , pero parece que el truco de incluir espacios en los delimitadores no funciona aquí.
Keith Thompson
2
Los backticks de @Patrick son malos: mywiki.wooledge.org/BashFAQ/082
Andrew
@ Andrew sí, soy consciente de eso, pero prefiero quedarme con el estilo de codificación de lo que sea que esté respondiendo.
Patrick
2

Sé que esto es viejo, pero mi recomendación sería:

porque yo en seq -f %02g 0 99; hacer mkdir $ i; hecho

el -f% 02g asegura que permanezca al menos dos caracteres, como 00 o 99, y aún permitirá 3 números de caracteres más allá de 99, por lo que si tiene 100 no se convertirá en 001. Será 00-99 100 en lugar de 001- 100 como el -w hace.

Nate W
fuente