Linux:mkdir命令详解(-p,--verbose,-v,--version,-m,-Z,--context)

2023-05-16

Content

  • 1.mkdir是什么
  • 2.mkdir使用
    • 2.1 - -version
    • 2.2 - -verbose/-v
    • 2.3 -p/- -parents ※
    • 2.4 -m/- -mode=MODE
    • 2.5 -Z
    • 2.6 - -context[=CTX]
      • 2.6.1 单纯- -context和-Z类似
      • 2.6.2 - -context=CTX

1.mkdir是什么

mkdir是Linux系统中常用于新建目录的命令,先看一下官方解释(是否汉化不重要):

deepin@deepin-PC:~$ mkdir --help
用法:mkdir [选项]... 目录...
Create the DIRECTORY(ies), if they do not already exist.

必选参数对长短选项同时适用。
  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask
  -p, --parents     no error if existing, make parent directories as needed
  -v, --verbose     print a message for each created directory
  -Z                   set SELinux security context of each created directory
                         to the default type
      --context[=CTX]  like -Z, or if CTX is specified then set the SELinux
                         or SMACK security context to CTX
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 mkdir 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/mkdir>
或者在本地使用:info '(coreutils) mkdir invocation'

长篇大论有点难搞,先看看拆分吧(--help显示帮助,已经讲完了(doge))

2.mkdir使用

方便阅读我在标题的两个横杠之间加了空格,平时是没有的。除了2.1的参数,其他参数都是可以随意混合的。

2.1 - -version

部分GNU开源软件的-v选项和--version选项是同一个东东,但是mkdir的只有输入--version才能显示版本:

deepin@deepin-PC:~$ mkdir --version
mkdir (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
许可证 GPLv3+:GNU 通用公共许可证第 3 版或更新版本<https://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。

由David MacKenzie 编写。

不同系统版本不一定相同,不需要过多关注。

2.2 - -verbose/-v

mkdir这里的这两个参数就是同一个东东了,作用是为每个新建的目录打印一条信息,具体看看:

deepin@deepin-PC:~$ mkdir -v abc
mkdir: 已创建目录 'abc'

说白了用处也不大。

2.3 -p/- -parents ※

这就是一个重头戏了,平时为了简便,我们大多数都是使用-p。这玩意可以一次性创建多重目录,看看示例:

假如我们要创建多层文件夹a/b/c/d/e/f
不用-p参数,我们就需要创一个cd一下:
mkdir a
cd a
mkdir b
...
而使用-p一步到位:
mkdir -p a/b/c/d/e/f

爽!

2.4 -m/- -mode=MODE

这个东西就是一般的mkdir+chmod,-m就是一步到位:

mkdir -m 755 doge
ls -l(有些系统是ll,可以通过alias改变)结果:
drwxr-xr-x  2 deepin deepin      4096 824 11:35 doge

2.5 -Z

这个东西就是给创建的目录加上SELinux安全上下文,这个玩意没研究过,想深入了解可以搜索一下:

mkdir -Z doge

2.6 - -context[=CTX]

设置安全上下文的,这东西有两个情况:

2.6.1 单纯- -context和-Z类似

标题已经说的很明白:

mkdir --context doge

2.6.2 - -context=CTX

官方:如果指定了CTX,则将SELinuxSMACK安全上下文设置为CTX。
这个方面雀食还是没研究过,比如这样:

deepin@deepin-PC:~$ mkdir --context=CTX doge
mkdir: warning: ignoring --context; it requires an SELinux/SMACK-enabled kernel

它给的警告是忽略掉--context参数,我的Linux内核没有开启SELinux/SMACK功能,就不能这么乱搞。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux:mkdir命令详解(-p,--verbose,-v,--version,-m,-Z,--context) 的相关文章

随机推荐