`mkdir -p`と`install -d`の違いは何ですか?

`mkdir -p`と`install -d`の違いは何ですか?

システムへの変更に関してこれら2つのコマンドmkdir -pの違いは何ですか?install -d

答え1

mkdir -pとの主な違いは、install -dディレクトリがすでに存在する場合install -d所有権とファイルモードビットのみを設定しようとします。

  • install -dmake_dir_parents通話をpreserve_existing次に設定します。false
  • mkdir -pmake_dir_parents呼び出しをpreserve_existingに設定しますtrue

preserve_existingもしそうなら、ディレクトリがすでに存在する場合、関数は所有true権とファイルモードのビットを設定しようとしません。

mkdir -pそしてinstall -dcoreutilsで同じ関数を呼び出しますmake_dir_parents

Coreutil ソース:

答え2

まず、mkdir -pPOSIXですが、そうではinstallありません。それから、私たちは始めていますGNUinstallドキュメント:

--directory()オプションを付与すると、-dinstall目次そして欠けている親ディレクトリ。オプションや現在のumaskにu=rwx,go=rx関係なく、-m親ディレクトリは ""(755)モードを使用して作成されます。バラよりディレクトリ Setuid と Setgid、親ディレクトリからset-user-IDおよびset-group-IDビットを継承する方法を学びます。

そして:

' -d'
'欠落している親ディレクトリを作成し、デフォルトの--directoryプロパティ
を提供します。次に、指定された各ディレクトリが作成され、その所有者、グループ、およびモードがコマンドラインで指定されたディレクトリまたはデフォルトに設定されます。

だから:

  1. GNU の場合、install親ディレクトリの権限が異なる場合があります。
  2. installリーフディレクトリの所有権を設定できます。

関連情報