install
、Linux および macOS で使用できる多用途のファイル コピー コマンドです。効率を求めるパワーユーザーに最適です。この記事を読んで、難しいことではなく、より賢く働く方法を見つけてください。
待ってください — ソフトウェアをインストールするためのものではありませんか?
install
コマンドは、Linux コマンドの中で最も誤解を招きやすい名前を持っている可能性があります。実際にはソフトウェアはインストールされません。 Ubuntu または別の Debian ベースのディストリビューションでコマンド ラインからソフトウェア パッケージをインストールしようとしている場合は、
apt- get
指示。他の Linux ディストリビューションでは、代わりに Linux ディストリビューションのパッケージ管理ツールを使用してください。たとえば、次のようになります。
dnf
Fedora または
zypper
openSUSE 上で。
では、インストールは何をするのでしょうか?
一言で言えば、
install
以下の要素を組み合わせます。
cp
( コピー )、
chown
mkdir
( ディレクトリの作成 )、および
strip
( シンボルを削除 ) コマンド。これらすべての機能を 1 回のアクションで使用できるようになります。
install
コマンドでは次のことができます。
-
次のようなファイルをコピーします
指示。cp - 既存のファイルを上書きするかどうかを選択します。
-
ターゲットディレクトリが存在しない場合は、次のように作成します。
。mkdir -
chmodコマンドと同様に、ファイルのユーザー許可フラグを設定します。 -
ファイルの所有者を設定します。
指示。chown -
実行可能ファイルから不要な荷物を削除します。
指示。strip
これだけの機能があるにもかかわらず、
install
コマンドには、対処す
べきオプションが
あまりありません。
いつ使いますか
install
コマンドはおそらく毎日使用されるわけではありません。これは便利ですが、特定の状況でのみ使用されます。
install
重要になるシナリオの 1 つは、ソフトウェア開発です。新しいユーティリティをプログラミングしているとします。開発環境の外でテストを行う必要があります。これを行うには、新しいプログラム ファイルをテスト ディレクトリにコピーする必要があります。場合によっては、テスト ディレクトリを作成し、ファイルに正しいアクセス許可と所有権を設定する必要があります。
開発は反復的なアクティビティであるため、この一連のアクションを何度も実行することになります。
install
コマンドは、面倒な作業をすべて行ってくれます。最後に、新しいユーティリティを展開する準備ができたら、
install
使用して、正しいアクセス許可を使用してそれを最終的な作業場所にコピーできます。
例
あるプログラマーが、まさに
ana
と呼ばれるそのような新しいユーティリティに取り組んでいます。実行可能なバイナリ ファイルとデータベースで構成されます。テスト後、Linux システムのすべてのユーザーが使用できるように、これを
/usr/local/bin
にコピーする必要があります。
install
使用する場合は、この例のファイル名とディレクトリ パスを、コンピュータ上で使用しているファイルとパスに置き換える必要があります。
リリースの準備ができるまで、
~/test/ana
というディレクトリでテストされます。
geek
グループのメンバーには読み取り権限と実行権限が与えられます。他のユーザーにも読み取り権限と実行権限が与えられます。
install
コマンドは、
chmod
と同じ権限の数値表現を使用します。私たちのプログラマーは、権限を次のように設定する必要があると判断しました。
- 所有者: 読み取り、書き込み、および実行。
- グループ: 読み取りと実行。
- その他: 実行のみ。
install
コマンドの使用方法
架空のプログラマの作業ディレクトリは
~/work
です。彼はプログラムを作成し、コンパイルして、
ana
というバイナリを作成しました。彼は、
ana
使用するデータベース ファイル
Words.db
をすでに作成しました。これで、両方のファイルをテストする準備が整いました。それらを見てみましょう:
ls -l ana Words.db
彼が作成した
ana
ユーティリティは、コマンド ラインで指定されたフレーズからアナグラムを作成します。検証テストは非常に簡単です。
私たちのプログラマーは「ビスケット」というフレーズで
ana
を呼び出しましたが、すべてうまくいっているようです。彼は、これら 2 つのファイルを
~/test/ana
ディレクトリにコピーして、新しいユーティリティが開発環境から離れた場所でも正しく機能するかどうかを確認したいと考えています。彼は次のコマンドを発行します。
インストール -D -v ana Words.db -t ~/test/ana
コマンドラインで使用されるオプションは次のとおりです。
- D : 必要に応じて、親ディレクトリを含むディレクトリを作成します。
- v : 詳細。作成された各ディレクトリーと実行された各ファイルのコピーをリストします。
- t : ターゲットディレクトリ。
install
~/test
ディレクトリが作成され、次に
~/test/ana
ディレクトリが作成されることがわかります。ファイルがターゲット ディレクトリにコピーされると、ファイルが 1 つずつリストされます。
~/test/ana
内のファイルをリストすると、それらが正しくコピーされたことが確認できます。
ls -l
次のステップでは、
~/test/ana
ディレクトリで
ana
ユーティリティを呼び出してテストします。
ユーティリティは期待どおりに動作し、素晴らしいです。ただし、権限が正しくありません。要件は、グループ
geek
のメンバーに読み取りおよび実行のアクセス許可を設定し、他のユーザーには実行のみを許可することです。
次のコマンドを使用すると、これらの問題の両方に非常に簡単に対処できます。 root 権限でコマンドを実行するには
sudo
を使用することに注意してください。
-o
と
-g
およびオプションではこれが必要です。コマンドを発行すると、パスワードの入力を求められます。
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
-
-b(バックアップ) オプションは、ファイルが上書きされる前にファイルのバックアップを作成します。 -
-S(接尾辞) オプションは、バックアップ ファイルの接尾辞を定義します。接尾辞を指定しない場合は、~(チルダ) が使用されます。install.bakの接尾辞を使用するように要求しています。 -
-o(所有者) オプションを使用して、ファイルの所有者をdaveに設定します。 -
-g(グループ) オプションにはグループの名前が必要です。これがファイルの所有者グループになります。私たちが使用するグループはgeekと呼ばれます。 -
-m(mode) オプションは、標準のchmod数値構文を使用して、ファイルのファイル モードを設定します。
テスト ディレクトリがすでに存在していることがわかっているため、
-D
(ディレクトリの作成) オプションを使用する必要はなくなりました。
-v
(冗長) オプションも省略しました。
~/test/ana
ディレクトリ内のファイルを一覧表示すると、ファイルの詳細が表示されます。
ls -l
これにより、すべての要件が満たされていることを確認できます。
- ファイルはテスト ディレクトリにコピーされました。
- 権限は正しく設定されています。
-
daveファイルの所有者です。 -
geekグループは 2 つのファイルの所有者グループです。 - 各ファイルのバックアップ コピーが作成されており、ana.bak および Words.db.bak と呼ばれます。
これらすべてを 1 つのコマンドを使用して実現しました。きちんとした。
プログラマはユーティリティに最終的な変更を加え、再コンパイルします。変更されたファイルは、
~/work
ディレクトリから
~/test/ana
ディレクトリにコピーする必要があります。これを行うには、
-C
(比較) オプションを使用します。ソースファイルとターゲットファイルが同じ場合、ソースファイルはコピーされません。
sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
ターゲット ディレクトリ内のファイルを一覧表示すると、
ana
ファイルのファイル サイズが変更されていることがわかります。これは
ana.bak
ファイルよりも大きくなります。
ana
のタイムスタンプも変わりました。これらの変更は、新しいバージョンのファイルがここにコピーされたためです。
ls -l
Words.db
ファイルのファイル サイズとタイムスタンプは変更されていません。
Words.db
ファイルには変更が加えられなかったため、コピーされませんでした。多数のファイルを含むプロジェクトでは、
-C
(比較) オプションを使用すると、変更されたファイルのみをコピーするため、時間を大幅に節約し、ハード ドライブの使用量を節約できます。
プログラマは、
ana
ユーティリティが動作し続けることを再度テストしました。
次に、
install
使用してファイルを
/usr/local/bin
ディレクトリにコピーします。これにより、この Linux コンピュータのすべてのユーザーが新しいユーティリティを利用できるようになります。
/usr/local/bin
が存在することがわかっているので、そのディレクトリを作成する必要はありません。最後のコマンドの修正バージョンを使用できます。
ターゲット ディレクトリを
/usr/local/bin
に変更しました。
-C
(比較) オプションを削除しました。これは、ターゲット ディレクトリにこれらのファイルのコピーがまだ存在しないため、比較するものが何もないためです。同様に、バックアップするものがないので、
-b
(バックアップ) オプションと
-S
(サフィックス) オプションを削除できます。
sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin
ファイルが
/usr/local/bin
に到着したことをリストできます。
ls -l
そして最後のテストとして、ディレクトリをホーム ディレクトリに変更し、そこから新しいユーティリティを呼び出せるかどうかを確認してみましょう。
ana
コマンドの先頭に
./
を付ける必要はなかったことに注意してください。これは、コマンドが
/usr/local/bin
から実行されていることを意味します。任務完了。
インストールでは、バイナリ ファイル内から冗長なシンボル テーブルやその他の荷物を削除して、サイズを削減できると述べました。今すぐそうしましょう。以下のコマンドには Words.db が含まれていないことに注意してください。これは、Words.db がバイナリ実行可能ファイルではなくデータベース ファイルであるためです。バイナリ ファイルをコピーして圧縮するに
ana
次のコマンドを使用します。小文字の「s」を含む -s (縮小) オプションを追加しました。 -b (バックアップ) オプションと -S (サフィックス) オプションに大文字の「S」を付けて追加しました。
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin
/usr/local/bin
内のファイルをリストすると、
ana
ファイルのサイズとそのバックアップ バージョンを比較できます。
ana
ファイルは、以前のサイズのほぼ 60% に縮小されました。
ls -l /usr/local/bin
要約すれば
install
コマンドは、かなり特殊な用途に対応します。多くの人にとって、それは毎日、あるいはおそらく月ごとに使用されるわけではありません。それにもかかわらず、
install
コマンドは、使い慣れており、さまざまなテクニックを蓄えるのに適したツールです。必要な場合に備えて、効率の向上、シンプルさ、キーストロークの削減によって学習曲線を改善します。
関連: 開発者と愛好家のための最高の Linux ラップトップ





