使用 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}

相關內容