mkdir
mkdir(make directory)用于创建目录。默认只建一层:父目录不存在会失败,目录已存在也会失败。
mkdir [选项] 目录...可以一次给多个目录名,逐个创建 新目录的权限是
0777减去 umask,常见的 umask 是022,于是得到755
| 选项 | 说明 |
|---|---|
-p |
需要时把缺失的父目录一起建出来(parents),且目录已存在时不报错 |
-m <权限> |
指定新目录的权限(mode),不受 umask 影响 |
-v |
每建一个打印一行(verbose) |
1. 一次建出多层
mkdir a/b/c # a 不存在就失败:No such file or directorymkdir -p a/b/c # a、b、c 依次建出来
-p还有个常被当成主要用途的副作用:目录已经存在时它返回成功而不是报错 所以脚本里可以无条件写mkdir -p "$dir",不用先判断存不存在
2. 一次建多个平行目录
mkdir -p project/{src,tests,docs}花括号是 shell 展开的,mkdir 收到的是三个独立的路径,见 glob
3. 指定权限
mkdir -m 700 private不带
-m时权限受 umask 影响,-m直接定死-m只作用于最后那一层,-p顺带建出的父目录仍按 umask 来
4. 建完就进去
mkdir -p build && cd buildmkdir 不会改变工作目录,两条命令得串起来
man mkdir- GNU Coreutils – mkdir