Linux怎么创建指定目录并进入

你想在Linux中创建指定目录并直接进入该目录,有两种常用实现方式,分别适用于快速操作和脚本编写/严谨场景,具体如下:

一、快捷方式:一行命令直接创建并进入(最常用)

通过 && 连接 mkdir(创建目录)和 cd(进入目录)命令,实现"创建即进入",无需分步操作,语法和示例如下:

基本语法

bash 复制代码
mkdir 目标目录路径 && cd 目标目录路径

常用示例

  1. 创建当前目录下的子目录并进入

    bash 复制代码
    # 创建 test 目录,然后进入 test 目录
    mkdir test && cd test
    
    # 创建多层级子目录(如 dir1 下的 dir2)并进入最内层
    mkdir -p dir1/dir2 && cd dir1/dir2
  2. 创建绝对路径目录并进入

    bash 复制代码
    # 创建 /home/user/app 目录,然后进入该目录
    mkdir -p /home/user/app && cd /home/user/app

关键说明

  • &&:表示"前一个命令执行成功后,再执行后一个命令"(若目录创建失败,不会执行进入操作,避免报错)
  • -p:可选参数,用于创建多层级目录 (如 dir1/dir2),若目录已存在也不会报错,更安全实用

二、严谨方式:先判断目录是否存在,再创建并进入(适合脚本)

若在Shell脚本中使用,或需要避免"目录已存在"的提示,可先通过 if [ ! -d "目录路径" ] 判断目录是否不存在,再执行创建和进入操作,语法如下:

基本语法(脚本/手动执行均可)

bash 复制代码
# 定义目标目录路径(可替换为自己的目录)
target_dir="你的目录路径"

# 判断目录是否不存在,不存在则创建,最后进入目录
if [ ! -d "$target_dir" ]; then
    mkdir -p "$target_dir"
fi
cd "$target_dir"

示例

bash 复制代码
# 目标目录:~/Downloads/project
target_dir="~/Downloads/project"
if [ ! -d "$target_dir" ]; then
    mkdir -p "$target_dir"
fi
cd "$target_dir"

关键说明

  • [ ! -d "$target_dir" ]:判断条件,! 表示"非",-d 表示"判断是否为目录",整体意为"如果目标目录不存在"
  • 该方式不会因"目录已存在"而抛出 mkdir: cannot create directory: File exists 提示,更适合自动化脚本

三、补充技巧

  1. 创建并进入多层目录(必加 -p
    若直接创建 a/b/c 这种多层目录,不加 -p 会报错,必须搭配 -p 参数:

    bash 复制代码
    mkdir -p a/b/c && cd a/b/c
  2. 验证是否成功进入
    进入目录后,可通过 pwd 命令查看当前工作目录,确认是否在目标目录中:

    bash 复制代码
    pwd  # 输出当前目录路径,验证是否正确

四、总结

  1. 快速手动操作(优先推荐):mkdir -p 目录路径 && cd 目录路径-p 适配多层目录)
  2. 脚本/严谨场景:先通过 if [ ! -d "目录" ] 判断,再创建+进入,避免报错
  3. 核心命令:mkdir(创建)、cd(进入),通过 && 实现一键联动,-p 实现多层目录创建
相关推荐
xuxie996 小时前
N12 arm-clk时钟
运维·服务器·网络
大灰狼来喽6 小时前
OpenClaw 自动化工作流实战:用 Hooks + 定时任务 + Multi-MCP 构建“数字员工“
大数据·运维·人工智能·自动化·aigc·ai编程
lbb 小魔仙6 小时前
Docker容器化实战:从入门到精通,附完整实战案例
运维·docker·容器
by————组态6 小时前
Ricon组态系统:物联网时代的连接桥梁
运维·物联网·数学建模·组态·组态软件
java资料站6 小时前
笔记本安装Ubuntu20.04(详细
运维
jessecyj6 小时前
Nginx中$http_host、$host、$proxy_host的区别
运维·nginx·http
skiy6 小时前
Nginx搭建负载均衡
运维·nginx·负载均衡
珠海西格电力6 小时前
零碳园区能源互联的落地保障措施
大数据·运维·网络·人工智能·能源
Alphapeople6 小时前
安装华为CANN模型导出工具
linux·运维·服务器
-森屿安年-6 小时前
Linux - 进程
linux·操作系统