C
mkdir -p
和 install -d
有什麼區別?
就這兩個命令對系統所做的更改而言,
mkdir -p
和執行的操作有什麼區別?install -d
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 來源:
對於初學者來說,
mkdir -p
是 POSIX,install
不是。然後,我們從GNUinstall
文件中得到了這個:如果給出
--directory
(-d
) 選項,則install
創建每個 目錄和任何缺少的父目錄。無論選項或目前 umask 是什麼,父目錄都是使用模式 ’u=rwx,go=rx
’ (755)創建的。有關如何繼承父目錄的 set-user-ID 和 set-group-ID 位,-m
請參閱Directory Setuid 和 Setgid 。和:
’
-d
'’
--directory
'創建任何缺少的父目錄,並賦予它們預設屬性。然後創建每個給定的目錄,將它們的所有者、組和模式設置為命令行上給定的或預設值。
所以:
- 對於 GNU
install
,父目錄的權限可能不同。install
允許您設置葉目錄的所有權。