【问题标题】:bash script to make folders with names from 00 to ff用于创建名称从 00 到 ff 的文件夹的 bash 脚本
【发布时间】:2014-05-21 18:22:57
【问题描述】:

我想创建名称从 00 到 ff 的文件夹(总共 256 个文件夹),这样每个文件夹中的名称就又从 00 到 ff 了。我应该在终端上写什么?有什么建议吗?

【问题讨论】:

    标签: linux bash terminal


    【解决方案1】:

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

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

    【讨论】:

    • 我怎样才能在每个文件夹中再次拥有名称从 00 到 ff 的文件夹
    • 使用 for 循环代替聪明的解决方案
    • @thatotherguy: mkdir -p $(printf "%04x " {0..65535} | sed 's/\(..\)\(..\) /\1\/\2 /g')
    【解决方案2】:

    从@thatotherguy 的答案中借用核心思想。

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

    【讨论】:

      【解决方案3】:

      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 个子目录。

      【讨论】:

        【解决方案4】:

        我使用不同命令的版本:

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

        【讨论】:

          猜你喜欢
          • 2017-02-01
          • 2021-08-22
          • 1970-01-01
          • 2018-04-28
          • 1970-01-01
          • 2021-12-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多