就两个命令对系统所做的更改而言,mkdir -p
和正在执行的操作有什么区别install -d
?
对于初学者来说,mkdir -p
是 POSIX,install
不是。然后,我们从GNUinstall
文档中得到了这个:
如果给出
--directory
(-d
) 选项,则install
创建每个 目录和任何缺少的父目录。u=rwx,go=rx
无论-m
选项或当前 umask 是什么,父目录都是使用模式 ' ' (755)创建的。请参阅Directory Setuid 和 Setgid,了解如何继承父目录的 set-user-ID 和 set-group-ID 位。
和:
'
-d
'
'--directory
'
创建任何缺少的父目录,为它们提供默认属性。然后创建每个给定的目录,将它们的所有者、组和模式设置为命令行上给定的或默认值。
所以:
install
,父目录的权限可能不同。install
允许您设置叶目录的所有权。mkdir -p
和之间的主要区别在于install -d
,如果目录已经存在,则只会install -d
尝试设置所有权和文件模式位。
install -d
将调用make_dir_parents
与preserve_existing
设置为false
mkdir -p
将调用make_dir_parents
与preserve_existing
设置为true
。如果preserve_existing
是true
并且目录已经存在,该函数将不会尝试设置所有权和文件模式位。
mkdir -p
并install -d
在 coreutils 中调用完全相同的make_dir_parents
函数。
Coreutil 来源:
归档时间: |
|
查看次数: |
1475 次 |
最近记录: |