使用 bash 大量创建文件

使用 bash 大量创建文件

我一直试图解决这个问题,尝试了不同的命令,但仍然一无所获。你能帮我解答这个问题吗?

在您的主目录中,创建一个名为衬衫的子目录。在子目录中,创建 108 个文件,文件名格式为 style.size.color.ext,其中每个文件包含下表中的值的一种组合。

Style   tee, crew, turtleneck
Size    XXL, XL, L, M, S, XS
Color   red, yellow, blue
Extension   info, inv

这是我使用的最后一个命令。

$ touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}/{info,inv}

答案1

您的触摸命令有一个小错误。你原来的命令,

touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}/{info,inv}

最后有一个/它再次尝试创建一个目录,并且由于该目录不存在,您将收到错误消息,如下所示:

touch: cannot touch `/shirts/turtleneck.XS.blue/inv': No such file or directory

但是,由于您只需要文件,因此需要将原始命令更改为:

touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}.{info,inv}

聚苯乙烯: 您需要确保该目录shirts已经存在。否则,您将再次遇到相同的错误cannot touch

答案2

根据您的描述,这108个文件的名称应遵循以下格式style.size.color.ext

所以应该是

mkdir shirts
touch {tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}.{info,inv}

正在touch做的是创建一个空文件,但您正在尝试创建一个具有不同子目录的目录衬衫。touch不能那样做。

编辑:您还可以使touch上面的命令更短/看起来更好:

touch {tee,crew,turtleneck}.{{X,XX,}L,M,{X,}S}.{red,yellow,blue}.{info,inv}

相关内容