我有一个场景,我想在该子文件夹中创建一个主文件夹子文件夹子文件夹和文件
我的文本文件包含以下格式
ABC|A1|B1|A.txt
ABC|BB|CD|AF|JIDS.txt
ABC|BB|CDE|AFD|KL|JI.pdf
上面这个文件需要以for循环的形式传递让我们以第一条记录为例
ABC|A1|B1|A.txt
ABC -> 主文件夹
A1 -> 子文件夹
B1 -> 子文件夹
A.txt -> 是文件
应创建此格式文件夹
ABC{Main folder}-->
|=> A1 {Subfolder}-->
|=> B1 {child folder}-->
|=>A.txt {file inside child folder}
对于每一行,将所有
|
- 字符更改/
为形成路径名,创建目录,在路径名末尾创建文件。结果:
解释:
tr
命令会将所有|
-character替换为/
,并产生如下内容:tr
逐行读取。while
在每次迭代$pathname
中都会有一行来自这个输出。dirname "$pathname"
返回目录部分$pathname
(例如ABC/A1/B1
第一次迭代)。这用于mkdir -p
创建可能丢失的目录的调用。创建中间目录的-p
选项。mkdir
touch
用于$pathname
在刚刚创建的目录中实际创建mkdir
.&&
之间的mkdir
和touch
确保我们不会尝试在mkdir
(无论出于何种原因)未能创建的目录中创建文件。