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 实现多层目录创建
相关推荐
EMTime18 小时前
Docker运行OpenWRT
运维·docker·容器
lolo大魔王19 小时前
Linux 文件系统超全面详解(原理、结构、挂载、分区、inode、日志、管理命令)
linux·运维·服务器
磊 子20 小时前
详细讲解一下epoll
linux·io·epoll·io多路复用
printfLILEI21 小时前
php中的类与对象以及反序列化
linux·开发语言·php
zyl8372121 小时前
Docker 使用手册
运维·docker·容器
古月方枘Fry1 天前
MGRE实验
运维·服务器
叠叠乐1 天前
redmi k90 pro max 强解BL,刷海外rom, 并刷入sukisu ultra
linux
stolentime1 天前
FreeDomain 本地开发环境快速搭建指南
运维·服务器·网络
xiaoye-duck1 天前
《Linux系统编程》Linux 进程间通信之管道基础解析:从匿名管道原理到基于管道的进程池实现
linux