Je sais qu'avec mkdir je peux faire mkdir A B C D E F
pour créer chaque répertoire. Comment créer des répertoires AZ ou 1-100 sans taper chaque lettre ou chiffre?
Je sais qu'avec mkdir je peux faire mkdir A B C D E F
pour créer chaque répertoire. Comment créer des répertoires AZ ou 1-100 sans taper chaque lettre ou chiffre?
Réponses:
Il est probablement plus simple d'utiliser simplement une for
boucle:
for char in {A..Z}; do
mkdir $char
done
for num in {1..100}; do
mkdir $num
done
Vous avez cependant besoin d'au moins bash 3.0; sinon vous devez utiliser quelque chose commeseq
La {}
syntaxe est la syntaxe Bash non liée à la for
construction.
mkdir {A..Z}
est suffisant en soi.
http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion
mkdir -p ./logs-{1..5}
Vous pouvez également faire des combinaisons plus complexes (essayez-les avec echo
au lieu de mkdir
pour qu'il n'y ait pas de nettoyage par la suite):
Comparer
$ echo pre-{{F..G},{3..4},{m..n}}-post
pre-F-post pre-G-post pre-3-post pre-4-post pre-m-post pre-n-post
à
$ echo pre-{F..G}{3..4}{m..n}-post
pre-F3m-post pre-F3n-post pre-F4m-post pre-F4n-post pre-G3m-post pre-G3n-post
pre-G4m-post pre-G4n-post
Si vous avez Bash 4, essayez
$ echo file{0001..10}
file0001 file0002 file0003 file0004 file0005 file0006 file0007 file0008 file0009
file0010
et
$ echo file{0001..10..2}
file0001 file0003 file0005 file0007 file0009
Sous Linux, vous pouvez générer des séquences de chiffres avec la commande "seq", mais cela n'existe pas sur tous les systèmes Unix. Par exemple pour générer des répertoires de 1 à 100:
mkdir `seq 1 100`
Bien que vous puissiez certainement créer des répertoires de A à Z avec des utilitaires shell:
seq 65 90 \
| while read foo; do printf "%b\n" `printf '\\\\x%x\n' $foo`; done \
| xargs mkdir
C'est probablement beaucoup moins moche d'utiliser simplement Perl:
perl -e 'foreach (ord "A"..ord "Z") { mkdir chr $_ }'
mkdir direct{1..3}
se traduira par mkdir direct1 direct2 direct3
et ainsi de suite. Pareil pour{a..z}
mkdir {A..Z} mkdir {0..100} mkdir test_ {A..Z} et ainsi de suite.