一、创建目录


# mkdir DIRECTORY_NAME     创建目录


仅用mkdir 目录,则只能逐级创建一个目录,如果父目录不存在,则不能直接创建父目录和子目录,如:

# mkdir /tmp/x1

# mkdir /tmp/x2/hello    此处报错,提示没有x2目录


如果要一次性创建父目录和子目录,则可以用 -p 选项:

# mkdir -p /tmp/x2/hello

如果要看到创建目录的过程,可以用 -v 选项:

# mkdir -vp /tmp/x3/hello/world

wKioL1NDZ_rg0YPwAAFeCBojq7s805.jpg


bash 支持命令行的展开,类似于多项式乘法,用 { } 来完成展开,例如:

如果要创建a_b, a_d, c_b, c_d 这四个目录,可以写成:

# mkdir a_b, a_d, c_b, c_d

但也可以简写成:

# mkdir {a, c}_{b, d} -v

wKiom1NDaEDCBuCYAAMc74nsZLs375.jpg


更多示例:

用一条命令创建以下目录:x/y, x/z, x/m, x/y/a, x/y/b

如果使用以下命令,则不符合需求:

# mkdir -pv x{y,z,m}/{a,b}

正确的命令为:

# mkdir -pv x/{y/{a,b},z,m}

wKiom1NDaFiwWUdhAAMS2dTh4wk897.jpg

二、删除目录

# rmdir DERICTORY_NAME     此命令可以用来删除目录,但需注意的是,该命令只能删除空目录,如果目录中有文件,则需先删除文件,例如:

# ls

# rmdir x/m

# ls x/

# rmdir x/y      此处会报错,因为y目录不是空目录

wKioL1NDaFria-9_AAHtLUK23Us701.jpg

和创建目录一样,rmdir也支持 -p 选项来删除父目录及其子目录,但在删除命令中,该用法仅限于删除一脉单传的目录,即 a/b/c/d 的形式,如果 a 目录下面还有 e 目录,则-p 选项就不起作用了,示例如下:

# mkdir -pv m/n/o/p

# rmdir -pv m/n/o/p

# mkdir -pv m/{n/o/p,q}

# rmdir -pv m/n/o/p     此命令会报错,因为m目录下还有q目录

wKiom1NDaJ_A2SgFAALoSSxmKQo543.jpg