【发布时间】:2014-05-21 18:22:57
【问题描述】:
我想创建名称从 00 到 ff 的文件夹(总共 256 个文件夹),这样每个文件夹中的名称就又从 00 到 ff 了。我应该在终端上写什么?有什么建议吗?
【问题讨论】:
我想创建名称从 00 到 ff 的文件夹(总共 256 个文件夹),这样每个文件夹中的名称就又从 00 到 ff 了。我应该在终端上写什么?有什么建议吗?
【问题讨论】:
printf 可以将一系列数字格式化为十六进制:
mkdir $(printf "%02x " {0..255})
for dir in */
do
mkdir $(printf "$dir/%02x " {0..255})
done
【讨论】:
mkdir -p $(printf "%04x " {0..65535} | sed 's/\(..\)\(..\) /\1\/\2 /g')
从@thatotherguy 的答案中借用核心思想。
dirs=$(printf "%02x " {0..255})
for d1 in $dirs
do
mkdir d1
for d2 in $dirs
do
mkdir d1/d2
done
done
【讨论】:
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 个子目录。
【讨论】:
我使用不同命令的版本:
join -j2 <(seq 0 255) <(seq 0 255) | xargs -n256 printf "%02x/%02x\n" | xargs mkdir -p
【讨论】: