[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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

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

書式:

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

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

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

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

‘-b’
‘--backup[=method]’

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

‘-C’
‘--compare’

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

‘-c’

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

‘-D’

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

‘-d’
‘--directory’

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

‘-g group’
‘--group=group’

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

‘-m mode’
‘--mode=mode’

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

‘-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 section バックアップ・オプション.

‘-t directory’
‘--target-directory=directory’

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

‘-T’
‘--no-target-directory’

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

‘-v’
‘--verbose’

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

‘-Z’
‘--context[=context]’

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

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


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on June 7, 2022 using texi2html 1.82.