技术与生活 / 一篇记录
mkdir -p:把实验目录准备得更可靠
批量任务经常需要 input 和 output 两个目录。逐级创建会引入额外的存在性判断,-p 能处理缺少父目录的情况,也允许重复准备同一套结构。
把练习文件放进单独目录,可以减少与已有文件混淆的机会。
实际怎么检查
以下示例面向常见 GNU/Linux 环境,文件名为实验用占位名称。
mkdir -p demo/input demo/output
重复执行仍能成功,两个子目录都应存在。
遇到异常再检查什么
重复执行后检查目录层级是否相同。若路径上已经存在同名普通文件,创建仍会失败;遇到这种情况先确认对象类型,不要直接覆盖。
目录创建成功后,可以使用 test -d 判断它是不是目录。只检查路径存在不足以区分普通文件与目录;后续写入失败时,也要核对目录所有者与执行任务的用户是否一致。
目录名称要加引号,尤其是来自外部输入的路径。
参考:Linux 文档。