2014-05-21 45 views

回答

4

printf可以格式化一系列数字为十六进制:

mkdir $(printf "%02x " {0..255}) 

for dir in */ 
do 
    mkdir $(printf "$dir/%02x " {0..255}) 
done 
+0

我怎么能在这些文件夹中再次有名称从00到ff – user3452721

+0

的文件夹代替聪明的解决方案,使用for循环 –

+3

@thatotherguy:'mkdir -p $(printf“%04x”{0。 .65535} | sed's/\(.. \)\(.. \)/ \ 1 \/\ 2/g')' – rici

2

借款从@thatotherguy答案的核心理念。

dirs=$(printf "%02x " {0..255}) 
for d1 in $dirs 
do 
    mkdir d1 
    for d2 in $dirs 
    do 
     mkdir d1/d2 
    done 
done 
0

我使用不同的命令版本:

join -j2 <(seq 0 255) <(seq 0 255) | xargs -n256 printf "%02x/%02x\n" | xargs mkdir -p 
0

for x in {{0..9},{a..f}}{{0..9},{a..f}}; do mkdir -p $x/{{0..9},{a..f}}{{0..9},{a..f}}; done

这将使256名的目录,每个子目录256,共计65,536个子目录。

相关问题