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 实现多层目录创建
相关推荐
eastyuxiao1 天前
思维导图拆解项目范围 3 个真实落地案例
大数据·运维·人工智能·流程图
GanGanGanGan_1 天前
RustDesk 安装指南 — Rocky Linux 9 + XFCE X11
linux·运维·centos
南境十里·墨染春水1 天前
linux学习笔记 网络编程——Socket入门与TCP客户端/服务器实现
linux·服务器·网络
Sirens.1 天前
twikoo:从MongoDB Atlas到本地部署
运维·服务器
Meya11271 天前
别再人工硬扛机房管理!智能 U 位系统,让机房管理一键数字化
大数据·运维
DFT计算杂谈1 天前
自动化脚本一键绘制三元化合物相图
java·运维·服务器·开发语言·前端·python·自动化
Yupureki2 天前
《Linux网络编程》6.UDP原理
linux·运维·服务器·网络·udp
楼田莉子2 天前
Linux网络:NAT_代理
linux·运维·服务器·开发语言·c++·后端
烛衔溟2 天前
TypeScript 索引签名、只读数组与 keyof / typeof 入门
linux·ubuntu·typescript
Harvy_没救了2 天前
【网络运维】 WordPress 部署复盘
运维·网络