当前位置: 首页 > news >正文

【linux007】目录操作命令篇 - mkdir 命令

文章目录

      • 1、基本用法
      • 2、常见选项
      • 3、举例
      • 4、注意事项

mkdir 是一个非常常用的命令,用于创建一个或多个目录。尤其是在编写脚本和管理文件系统时。

mkdir 命令用于创建新的目录,如果指定的目录已存在,将会返回一个错误信息

1、基本用法

mkdir [选项] 目录名...

2、常见选项

  • -m, --mode=MODE:设置新建目录的权限,类似于 chmod,如 -m 755
  • -p, --parents:递归创建目录,必要时自动创建父目录。如果指定的目录已存在,不会报错。
  • -v, --verbose:显示命令执行过程中的详细信息,即显示每个创建的目录。
  • --help:显示帮助信息。
  • --version:显示命令的版本信息。

3、举例

-m 选项举例:

#通过此选项可以在创建目录时设置目录的权限
mkdir -m 700 xiaopeng

在这里插入图片描述

-p 选项举例:

#递归地创建目录及其父目录
#如果 /usr/local/test/dir1 或 /usr/local/test/dir1/dir2 目录不存在,该命令将自动创建这些目录
mkdir -p /usr/local/test/dir1/dir2/dir3

在这里插入图片描述

-v 选项举例:

#详细显示创建的目录
mkdir -v xiaopeng2

在这里插入图片描述

–help 选项举例:

#显示帮助信息。执行此命令会列出 mkdir 的所有可用选项和使用方法
mkdir --help

在这里插入图片描述

–version 选项举例:

#显示 mkdir 命令的版本信息
mkdir --version

在这里插入图片描述

4、注意事项

避免覆盖现有目录

  • mkdir 不会覆盖已存在的目录。如果尝试创建一个已存在的目录,将会返回错误信息:

    mkdir: cannot create directory ‘dir_name’: File exists
    
  • 如果需要避免这种情况,可以在脚本中提前检查目录是否存在,或使用 -p 选项来避免错误信息的显示。

权限问题

  • 确保有权限在指定路径下创建目录。如果没有权限,命令将会失败,并显示权限错误:

    mkdir: cannot create directory ‘/some/protected/path/dir_name’: Permission denied
    
  • 在这种情况下,可能需要使用 sudo 来提升权限

    sudo mkdir /some/protected/path/dir_name
    

递归创建目录时的路径正确性

  • 使用 -p 选项递归创建目录时,确保路径的正确性。该选项会在路径中缺失的所有父目录均不存在的情况下创建它们,但不会创建已存在的目录或文件。

  • 如果路径中间部分已经是一个文件而非目录,mkdir 会报错。例如

    mkdir -p /home/user/file/dir_name
    

    如果 /home/user/file 已经存在且是一个文件,命令将会失败。

正确设置目录权限

  • 使用 -m 选项设置目录权限时,要注意权限的合理性。过于开放的权限(如 777)可能会导致安全风险,尤其是在公共服务器或共享环境中。
  • 默认情况下,mkdir 创建的目录权限会受到 umask 值的影响,了解 umask 的值有助于更好地控制默认权限。
  1. 避免使用保留关键字和特殊字符
  • 尽量避免使用系统保留关键字、空格或特殊字符(如 *, ?, $, !)作为目录名,这些字符可能会在命令行或脚本中引发问题。如果必须使用特殊字符,可以用引号(单引号或双引号)包裹目录名:

    mkdir 'my directory'
    

检查命令结果

  • 在自动化脚本中使用 mkdir 时,检查命令是否成功非常重要。可以通过 $? 变量检查上一条命令的退出状态码:

    if [ $? -eq 0 ]; thenecho "Directory created successfully"
    elseecho "Failed to create directory"
    fi
    

避免与文件同名

  • 尽量避免创建与现有文件同名的目录。如果在某个路径下已经存在同名文件,mkdir 将无法创建目录并报错

    mkdir: cannot create directory ‘name’: File exists
    

    在这里插入图片描述


http://www.mrgr.cn/news/26492.html

相关文章:

  • 2024年职场人士都在用的PDF转换工具大赏
  • Flask 第六课 -- 路由
  • PMP--一模--解题--41-50
  • react 组件通讯
  • 代码随想录训练营 Day60打卡 图论part10 SPFA算法 Bellman-Ford 之判断负权回路 Bellman-Ford 之单源有限最短路
  • JavaScript高级——变量提升和函数提升
  • 四、滑动窗口-算法总结
  • Debian11之Python3安装
  • java多线程编程 线程池的使用
  • spring security OAuth2 搭建资源服务器以及授权服务器/jdbc/jwt两种方案
  • 第 11篇 Helm 部署 RabbitMQ
  • 简单了解 JVM
  • 【开放词汇检测】基于MMDetection的MM-Grounding-DINO实战
  • 一天认识一个硬件之CPU
  • 使用HTML和CSS制作网页的全面指南
  • 基于Qt的串口调试工具
  • 金钥匙系列:解决学习拖延症和提高学习效率的有效方法
  • 在服务器上开Juypter Lab教程(远程访问)
  • 企业异地投资、跨省投资、异地子公司数据(2000-2022年)
  • 伏秒平衡的深入理解