Content
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 8月 24 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,则将SELinux或SMACK安全上下文设置为CTX。
这个方面雀食还是没研究过,比如这样:
deepin@deepin-PC:~$ mkdir --context=CTX doge
mkdir: warning: ignoring --context; it requires an SELinux/SMACK-enabled kernel
它给的警告是忽略掉--context
参数,我的Linux内核没有开启SELinux/SMACK
功能,就不能这么乱搞。