Shell中使用mkdir命令创建多层嵌套目录的正确方法
错误原因
- 原命令的大括号没有正确闭合,shell无法识别花括号扩展语法,直接将未闭合的花括号内容作为普通目录名解析,才会生成名为
{Genes的异常目录 - 原命令的目录层级逻辑错误:PhenV2、HypV1、HypV2是和PhenV1平级的Analysis一级子目录,原命令将这三个目录嵌套写在PhenV1的扩展规则内,即使括号闭合也会生成错误的嵌套结构。
修正方案
直接执行以下命令即可一次性生成符合要求的完整目录结构:
mkdir -p Analysis/{PhenV1,PhenV2,HypV1,HypV2}/{Genes,Variants}/{CNV,SNV}
该命令利用shell多层花括号扩展的特性自动展开路径:
- 第一层扩展生成
Analysis目录下4个平级子目录:PhenV1、PhenV2、HypV1、HypV2 - 第二层扩展为上述4个目录分别创建Genes、Variants两个子目录
- 第三层扩展为每个Genes、Variants目录分别创建CNV、SNV两个子目录
执行完成后可通过tree Analysis命令校验结构,最终生成的目录层级完全匹配需求:
Analysis/ ├── PhenV1 │ ├── Genes │ │ ├── CNV │ │ └── SNV │ └── Variants │ ├── CNV │ └── SNV ├── PhenV2 │ ├── Genes │ │ ├── CNV │ │ └── SNV │ └── Variants │ ├── CNV │ └── SNV ├── HypV1 │ ├── Genes │ │ ├── CNV │ │ └── SNV │ └── Variants │ ├── CNV │ └── SNV └── HypV2 ├── Genes │ ├── CNV │ └── SNV └── Variants ├── CNV └── SNV
内容的提问来源于stack exchange,提问作者geneteics_diva
相关产品推荐
相关产品推荐

