install
私はこのコマンドが多くのMakefileで使用されており、その存在と使い方が少し混乱しています。マンページで見ると機能が少ないレプリカのようですがcp
、それよりも強力でなければcp
…何が起こりますか?
答え1
install
ファイルをコピーするだけでなく、所有権と権限も変更し、オプションで実行可能ファイルからデバッグシンボルを削除します。 、およびcp
と結合されます。これは、さまざまな一般的な基本操作を実行できる便利な高度なツールです。chown
chmod
strip
install
実行可能ファイルのインストールの1つの利点cp
は、ターゲットがすでに存在する場合は、ターゲットファイルを削除して新しいファイルを作成することです。これは、利点と欠点に見えるアクセス制御リストや機能などの現在の属性を削除します。実行可能ファイルを更新すると、実行可能ファイルがすでに実行されている場合は影響を受けずに実行され続けます。代わりに、cp
ファイルが存在する場合、ファイルはその場所で更新されます。ほとんどのUnixバリアントでは、ターゲットが実行中の実行可能ファイルの場合、エラーEBUSY1で失敗します。場合によっては、コードセクションを動的にロードしてファイルを変更するため、ターゲットがクラッシュする可能性があります。意味のないコードがロードされます。
install
BSDコマンドです(次に追加)。4.2BSDつまり、1980年代初頭)。 POSIXでは採用されていません。
1 「テキストファイルを使用中」。この場合、「テキストファイル」とは「バイナリ実行ファイル」を意味する。未知の歴史的理由。
答え2
単一のコマンドでファイルをコピーしたりディレクトリを作成したりするときに、ファイルまたはディレクトリの所有権と権限を操作する標準化された方法を提供します。
答え3
コマンドを使用して、install
必要な権限でファイルをコピーできます。
LDAP 設定時に使用する主な例
install -o ldap -g ldap /etc/openldap/DB_CONFIG_EXAMPLE /var/lib/ldap/DB_CONFIG
これにより時間が節約されます。使用するためにコピーする場合は、chown ldap. /var/lib/ldap/DB_CONFIG
この場合もcp
これを行う必要があります。chown
答え4
マニュアルページを参照してください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