Come creare 100 sottodirectory usando uno script Bash?


14

Sto cercando di creare 100 diverse sottodirectory in alcune directory usando uno script Bash.

Comincio con un forciclo di base (ovvero, for f in $FILES;do mkdir f done), ma non funziona.

Per essere chiari su ciò che voglio fare: cerco di ottenere 100 diverse sottodirectory nelle directory correnti (qui uso home='pwd'). Ad esempio, nella directory /home/paul/main_directory/.

E qui vorrei creare 100 directory con indice da 1 a 100, in questo modo:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100

Risposte:


19

Per rispondere alla tua domanda utilizzando il forciclo suggerito , anche l'espressione di parentesi graffa menzionata da steeldriver funziona:

for i in {1..100}; do mkdir subdirectory_$i; done

Per rispondere alla tua domanda aggiornata:

Entrambi: la risposta di Steeldriver e quella da me sono entrambi pensati per essere una linea.

Se vuoi usarlo in uno script Bash, probabilmente lo scriveresti come:

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done

scusa non voglio modificare la tua risposta, voglio solo commentarla ... ahi ...
Pavol Namer,

Grazie mille, per la tua risposta molto rapida, ora ho. Grazie molte volte, questo mi salva un sacco di tempo :)
Pavol Namer,

1
un'alternativa per i casi in cui non hai un BASH completo ma solo un / bin / sh, puoi usare seqinvece: for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn,

Crea una directory '{1..3}', quando si tenta di fare lo stesso 3 volte. Qualche idea di cosa potrebbe essere andato storto?
soufrk,

40

Il modo più semplice è probabilmente quello di utilizzare l' espansione del controvento

mkdir subdirectory_{1..100}

8

Per aggiungere qualcosa alla risposta davvero impressionante data da Steeldriver:

È possibile creare directory che ordinano "correttamente" riempiendo con zero.

mkdir subdirectory_{001..100}

(Se ti piace questa risposta, per favore vota la risposta di Steeldriver. Non posso ancora commentare, o l'avrei fatto.)


Crea una sottodirectory denominata "sottodirectory_ {001..100}". Qualsiasi indizio su cosa potrebbe essere andato storto.
soufrk,

Nessuna idea. Funziona bene per me qui. Stai usando bash?
MDeBusk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.