回答:
install
ファイルをコピーするだけでなく、その所有権と許可を変更し、オプションで実行可能ファイルからデバッグシンボルを削除します。それは組み合わせcp
てchown
、chmod
そしてstrip
。これは、基本的なタスクの共通シーケンスを達成するための便利な高レベルのツールです。
利点install
を超えるcp
実行可能ファイルをインストールするためには、ターゲットがすでに存在する場合、それは目的のファイルを削除し、新しいものを作成することです。これにより、アクセス制御リストや機能など、現在のプロパティはすべて取り除かれ、利点と欠点の両方として見ることができます。実行可能ファイルを更新するときに、この実行可能ファイルの実行中のインスタンスがある場合、それらは影響を受けずに実行を続けます。対照的にcp
、ファイルがある場合はその場所でファイルを更新します。ほとんどのUnixバリアントでは、ターゲットが実行中の実行可能ファイルである場合、これはエラーEBUSY¹で失敗します。コードセクションを動的に読み込み、ファイルを変更すると無意味なコードが読み込まれるため、ターゲットがクラッシュする場合があります。
install
BSDコマンドです(4.2BSD、つまり1980年代初期に追加されました)。POSIXでは採用されていません。
¹ 「テキストファイルがビジー」。このコンテキストでは、「テキストファイル」とは、歴史的な理由が不明なため、「バイナリ実行可能ファイル」を意味します。
これは、ファイルのコピーまたはディレクトリの作成中に、単一のコマンドでファイルまたはディレクトリの所有権と許可を操作する標準化された方法を提供します。
次のマニュアルページを参照してくださいinstall
。
$ man install
抜粋
SYNOPSIS
install [OPTION]... [-T] SOURCE DEST
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...
DESCRIPTION
This install program copies files (often just compiled) into
destination locations you choose. If you want to download and
install a ready-to-use package on a GNU/Linux system, you should instead
be using a package manager like yum(1) or apt-get(1).
In the first three forms, copy SOURCE to DEST or multiple SOURCE(s) to
the existing DIRECTORY, while setting permission modes and
owner/group. In the 4th form, create all components of the given
DIRECTORY(ies).
Mandatory arguments to long options are mandatory for short options too.
特定の所有権、アクセス許可を使用したインストール、元のファイルのタイムスタンプの保存など、その他の便利な機能もを使用して実現できますinstall
。
-g, --group=GROUP
set group ownership, instead of process' current group
-m, --mode=MODE
set permission mode (as in chmod), instead of rwxr-xr-x
-o, --owner=OWNER
set ownership (super-user only)
-p, --preserve-timestamps
apply access/modification times of SOURCE files to corresponding
destination files
install
だけではなく、のように既存のアクセス許可を保持するcp
rm
とともに結合されることcp
です。これは、使用中のファイルをrm
最初にリンク解除()することで上書きできることを意味します。cp
単独でエラーが発生します。