install(1)コマンドが便利だった件
はじめに
install(1)という、cpとmkdirとchmodを同時に行うような便利コマンドがあることを知りました。
(忘れちゃいましたが、何かのMakefileを見ているときに存在に気付きました)
これを使うと、プロビジョニングなどのスクリプトが簡潔に書けるようになりそうです。
……というわけで使い方のメモがてらまとめてみます。
manの内容まとめ
installはBSD版とGNU版があるようですが、ここではGNU版について書きます。
BSD版ではいくつかのオプションが使用できません。(-D はなかったと思う)
ちなみにmacの場合は標準でBSD版のinstallが入っており、Coreutilsを入れるとGNU版のinstallが使えるようになります。
4種類の使い方
install [OPTION]... [-T] SOURCE DESTSOURCEをDESTにコピーする。-Tを付けると、DESTをファイルとして扱う
install [OPTION]... SOURCE... DIRECTORY- 複数の
SOURCEファイルをDIRECTORYディレクトリへコピーする
- 複数の
install [OPTION]... -t DIRECTORY SOURCE...- 複数の
SOURCEファイルをDIRECTORYディレクトリへコピーする
- 複数の
install [OPTION]... -d DIRECTORY...- ディレクトリを作成する(複数可)
その他のオプション(良さげなのを抜粋)
-D- コピー先のディレクトリが存在しない場合、ディレクトリを作成する
mkdir -pみたいな感じ
-o 所有者- コピー先の所有者を変更する
chownみたいな感じ
-g グループ- コピー先の所有グループを変更する
chownみたいな感じ
-m パーミッション- コピー先のパーミッションを変更する
chmodみたいな感じ
-S SUFFIX- コピー先が上書きになる場合、ファイル名の最後に
SUFFIXを付けてバックアップする
- コピー先が上書きになる場合、ファイル名の最後に
-Z- コピー先のSELinuxセキュリティコンテキストを設定する
- (※マニアックかよ)
使用例
authorized_keysのセットアップ
今までこう書いていたものが…
|
|
こう書けます。
|
|
すっきりしましたね!
まとめ
なぜ今までこんな便利なものに今まで気付かなかったのか……