【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
的值有助于更好地控制默认权限。
- 避免使用保留关键字和特殊字符
-
尽量避免使用系统保留关键字、空格或特殊字符(如
*
,?
,$
,!
)作为目录名,这些字符可能会在命令行或脚本中引发问题。如果必须使用特殊字符,可以用引号(单引号或双引号)包裹目录名: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