Linux命令行创建文件夹,从基础到进阶指南

LEAF
Linux命令行创建文件夹以mkdir为核心命令,基础操作中,mkdir 目录名可创建单个目录,mkdir dir1 dir2可批量创建多个目录,进阶技巧包括:加-p选项递归创建嵌套目录(如mkdir -p parent/child),避免父目录不存在时报错;用-m设置权限(如mkdir -m 755 newdir);结合花括号批量生成层级目录(如mkdir -p dir/{a,b,c}),需注意权限问题,善用ls验证结果,灵活运用选项可高效管理目录结构。

在Linux系统中,命令行是高效管理文件的核心工具,创建文件夹(目录)是最常见的操作之一,掌握命令行下的创建方法不仅能提升操作效率,更是自动化脚本、服务器管理等场景的基础,本文将详细介绍Linux命令行创建文件夹的命令mkdir,从基础用法到进阶技巧,助你从入门到熟练。

基础用法:mkdir命令的基本格式

mkdir(Make Directory)是Linux中专门用于创建目录的命令,其基本语法非常简单,核心格式为:

mkdir [选项] 目录名

创建单个目录

最简单的用法是直接指定目录名,在当前路径下创建一个新目录,在当前目录下创建名为test的文件夹:

Linux命令行创建文件夹,从基础到进阶指南

mkdir test

执行后,通过lsls -l命令即可查看新创建的test目录(ls -l会显示详细信息,如权限、所有者等)。

创建多个目录

如果需要一次性创建多个目录,只需在命令中用空格分隔多个目录名即可,同时创建docmusicpicture三个目录:

mkdir doc music picture

这些新目录都会在当前路径下被创建,彼此之间无层级关系。

核心选项详解:让mkdir更强大

mkdir命令支持多个选项,通过组合选项可以实现更灵活的目录创建功能,以下是几个最常用且实用的选项:

-p:递归创建多级目录(最常用!)

当需要创建的目录包含多级嵌套时(如project/src/include),如果父目录projectsrc不存在,直接使用mkdir project/src/include会报错(No such file or directory)。-p选项(--parents)就能解决问题——它会自动创建所有不存在的父目录。

示例
创建多级目录project/src/include

mkdir -p project/src/include

即使projectsrc不存在,命令也会自动创建整个目录链。

补充-p选项还能避免重复创建已存在的目录。project已存在时,再次执行mkdir -p project/src不会报错,只会创建src子目录。

-v:显示创建过程(调试友好)

使用-v--verbose)选项,mkdir会打印出每个被创建的目录名称,方便确认操作是否成功,尤其适合创建多级目录时查看详细过程。

示例

mkdir -v -p project/src/include

执行后会输出类似内容:

mkdir: created directory 'project'
mkdir: created directory 'project/src'
mkdir: created directory 'project/src/include'

-m:设置目录权限

默认情况下,新创建的目录权限为755(所有者可读/写/执行,组用户和其他用户可读/执行),如果需要自定义权限,可以使用-m--mode)选项,后接权限数字(如700755等)。

权限数字规则

  • 4:读(r)
  • 2:写(w)
  • 1:执行(x)
  • 三位数字分别对应:所有者、组用户、其他用户。

示例
创建一个权限为700(仅所有者可读/写/执行)的private目录:

mkdir -m 700 private

执行ls -l private会看到权限为drwx------

其他实用选项

  • -Z:设置目录的SELinux安全上下文(适用于SELinux启用环境,如mkdir -Z system_u:object_r:default_t:s0 dir,普通用户较少使用)。
  • --help:显示mkdir命令的帮助信息(mkdir --help)。
  • --version:显示mkdir命令的版本信息(mkdir --version)。

注意事项与常见错误

忘记-p导致“父目录不存在”错误

错误示例

mkdir a/b/c  # 如果a或b不存在,会报错

正确做法

mkdir -p a/b/c

权限不足

如果当前用户对目标路径的父目录没有写权限,mkdir会报错(如Permission denied)。/root目录下只有root用户有写权限,普通用户直接执行mkdir /root/test会失败。

解决方法
使用sudo提升权限(需要管理员密码):

sudo mkdir /root/test

目录名含特殊字符

如果目录名包含空格、、等特殊字符,直接使用会导致命令解析错误。mkdir my folder会被系统理解为两个参数(myfolder),而不是一个名为my folder的目录。

解决方法
用单引号()或双引号()将目录名括起来:

mkdir "my folder"
mkdir 'test*dir'

实用技巧:提升效率的进阶用法

通配符批量创建目录

结合通配符,可以批量创建有规律的目录。

  • 创建dir1dir2dir3
    mkdir dir{1,2,3}
  • 创建dir_adir_d
    mkdir dir_{a..d}
  • 创建按日期命名的目录(如20231001):
    mkdir $(date +%Y%m%d)

脚本中判断目录是否存在再创建

在Shell脚本中,经常需要确保某个目录存在,避免后续操作因目录不存在而失败,可以通过if条件判断实现:

if [ ! -d "logs" ]; then
    mkdir -p logs
    echo "目录 'logs' 创建成功"
else
    echo "目录 'logs' 已存在"
fi

解释:-d "logs"判断logs是否为目录,表示取反(即“不存在”时执行mkdir)。

结合xargs批量创建(高级场景)

如果需要从文件或命令输出中读取目录名并批量创建,可以结合xargs使用,从dirs.txt文件中读取目录名(每行一个目录)并创建:

cat dirs.txt | xargs mkdir -p

dirs.txt内容示例:

project/src
data/input
data/output

mkdir命令是Linux文件管理的基础,也是命令行操作的核心技能,从基础的mkdir 目录名,到带选项的mkdir -p -v -m 目录名,再到脚本中的灵活应用,掌握这些用法能让你在Linux系统中更高效地管理目录。

关键点回顾

  • 基础:mkdir创建单个/多个目录。
  • 核心:-p解决多级目录创建,-v显示过程,-m设置权限。
  • 注意:特殊字符需用引号,权限不足用sudo
  • 进阶:通配符批量创建、脚本条件判断、xargs批量处理。

多动手实践,尝试在不同场景下使用mkdir,你会逐渐发现命令行的高效与强大!

文章版权声明:除非注明,否则均为XMSDN - MSDN原版系统镜像 | 纯净ISO系统下载原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码