我有像这样的文件夹树:
00 -- 0
-- 1
...
-- 9
...
99 -- 0
-- 1
...
-- 9
在每个子文件夹中创建文件的最简单方法是: /00/0/00_0.txt 并将某种数据保存到每个文件中?
我尝试了触摸和循环,但没有成功。 有什么想法可以让它变得非常简单吗?
最佳答案
使用 glob 列出所有目录。使用 sed
修改列出的路径,使 37/4
变为 37/4/37_4.txt
。使用 touch
为所有修改的路径创建空文件。
touch $(printf %s\\n */*/ | sed -E 's|(.*)/(.*)/|&\1_\2.txt|')
即使 12/3
只是一个占位符并且您的实际路径类似于 abcdef/123
,这也有效。但是,当您的路径包含任何特殊符号(例如空格、*
或 ?
)时,它将失败。
要处理任意路径名,请使用以下命令。它甚至支持路径名中的换行符。
mapfile -td '' a < <(printf %s\\0 */*/ | sed -Ez 's|(.*)/(.*)/|&\1_\2.txt|')
touch "${a[@]}"
关于linux - 在多个目录中创建多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53607654/