Next: , Previous: dd invocation, Up: Basic operations   [Contents][Index]


11.3 install: ファイルをコピーし属性をセットする

install はファイルをコピーするとき、ファイルのモードビット (訳注: 一般にアクセス権とか、許可属性と言われるもの) をセットし、可能ならば、 所有者やグループも設定する。


書式:

install [option]… [-T] source dest
install [option]… sourcedirectory
install [option]… -t directory source…
install [option]… -d directory

installcp に似ているが、コピー先ファイルの属性を自由に設定できる点が違う。 install は通常、Makefile の中で、プログラムを目標のディレクトリにコピーするために使用される。 install では、ファイルをそれ自身にコピーすることはできない。

install が拡張属性 (xattr) を保存することはない。

このプログラムでは以下のオプションが使用できる。参照: Common options.

-b
--backup[=method]

See Backup options. そのままでは、上書きされるか、消去されてしまう各ファイルのバックアップを作成する。

-C
--compare

インストール元とインストール先の対応するファイルを比較し、 インストール先にあるファイルがインストール元と同じ内容を持ち、 しかも、所有者、グループ、許可属性、場合によっては SELinux コンテキストについて、そのどれもが指定されているものと同一であるときは、 インストール先ファイルを全く変更しない。 このオプションは、--user, --group, --mode オプションと組み合わせて使うのが、最善である。そうしたオプションと組み合わせて使えば、 install コマンドが、(たとえば、ディレクトリに setgid が付いているか否かや、POSIX のデフォルトの ACL を顧慮しないせいで)、 インストールされるファイルがデフォルトで持つはずの属性を不正確に決めてしまうのを避けることができる。 そういうことがあると、無駄なコピーが行われたり、 属性が正しいデフォルト値に設定し直されなかったりといった不都合が生じかねないのだ。

-c

無視する。Unix の古いバージョンの install との互換性のために ある。

-D

dest の指定中に存在していない親ディレクトリがあれば、 それを作成してから、sourcedest にコピーする。 -D とともに明示的に --target-directory=dir を指定した場合も、やはり出力先のディレクトリ階層が確実に存在するようになる。

-d
--directory

まず、存在していない親ディレクトリがあれば作成し、それにデフォルトの属性を与える。 それから、指定された各ディレクトリを作成し、所有者、グループ、許可属性を、 コマンドラインで指定されたとおりに、またはデフォルトの値に設定する。

-g group
--group=group

インストールするファイルやディレクトリの所有グループを group に設定する。 デフォルトは、プロセスの現在のグループである。 group は、グループ名でも、グループの ID 番号でもよい。

-m mode
--mode=mode

インストールするファイルやディレクトリのモードビットを mode に設定する。 mode の指定は、‘a=’ (誰にもアクセスを許さない) を基点として行い、 8 進数でも、chmod で使うようなシンボリックモードでもよい (see File permissions)。デフォルトのモードは、 ‘u=rwx,go=rx,a-s’ である。すなわち、所有者には読み、書き、実行を許可し、 グループとその他のユーザには読みと実行のみを許可、 set-user-ID と set-group-ID は無効にする。このデフォルトは、‘755’ と全く同じではない。なぜなら、デフォルトの方は、ディレクトリについて set-user-ID や set-group-ID を引き継がず、無効にしているからである。 See Directory Setuid and Setgid.

-o owner
--owner=owner

install が適切な権限を持っている場合に (つまり、root 権限で実行されている場合に)、インストールするファイルやディレクトリの所有者を owner に設定する。デフォルトは root である。owner の指定は、ユーザ名でも、ユーザの ID 番号でもよい。

--preserve-context

ファイルやディレクトリの SElinux セキュリティ・コンテキストを引き継ぐ。 ファイルやディレクトリすべてのセキュリティ・コンテキストを引き継げなかった場合は、 終了ステータスが 1 になる。SElinux が無効になっているときは、警告を出し、 このオプションを無視する。

-p
--preserve-timestamps

インストール先各ファイルの最終アクセス日時 (last access time) と最終更新日時 (last modification time) を、対応するインストール元各ファイルのそれぞれの日時に合わせる。 このオプションを付けずにインストールした場合、各ファイルの最終アクセス日時と最終更新日時は、 両方ともインストールした日時になる。インストール先ファイルの最終更新日時を、 最後にインストールした日付ではなく、最後にビルドした日付の記録として使用したい場合、 このオプションは便利である。

-s
--strip

インストールされるバイナリの実行ファイルからシンボル・テーブルを取り除く。

--strip-program=program

バイナリからシンボル・テーブルを取り除くために使用するプログラムを指定する。

-S suffix
--suffix=suffix

-b によって作られる各バックアップファイルの後ろに suffix を 付ける。 See Backup options.

-t directory
--target-directory=directory

directory を出力先ディレクトリに指定する。 See Target directory. -D オプションも指定すると、 ディレクトリの存在が保証される。

-T
--no-target-directory

最後のオペランドがディレクトリやディレクトリへのシンボリックリンク でも、それを特別扱いしない。 See Target directory.

-v
--verbose

コピーを行う前に、コピーするファイル名を表示する。

-Z
--context[=context]

context が指定されていない場合は、出力するファイルの SELinux セキュリティ・コンテキストを、出力先におけるシステムのデフォルトのタイプに合わせて調整する。 これは、restorecon コマンドの動作に似ている。 このオプションの長い形式を使って、コンテキストを明示的に指定した場合、 そのコンテキストが設定されるのは、新しく作成されるファイルに対してのみである。 コンテキストを指定した場合に、SELinux と SMACK のどちらも無効になっていると、 警告メッセージを出す。 このオプションと --preserve-context オプションは、どちらか一方しか指定できない。 (context を省略できるのは、coreutils-8.22 から)

終了ステータス 0 は成功を示し、0 以外の値は失敗を示す。


Next: , Previous: dd invocation, Up: Basic operations   [Contents][Index]