!findコマンドの実行はどのように機能しますか?

!findコマンドの実行はどのように機能しますか?

この!findコマンドを使用すると、ユーザーはfindすべてのパラメーターを使用して以前に実行したコマンドを実行できます。

内部的にはどのように機能し、この動作は正確にどこにプログラムされていますか?

ベストアンサー1

コマンド自体とは何の関係もなく、find履歴拡張と呼ばれるシェルの機能です。シェルが履歴拡張をサポートしている場合は、過去に入力したコマンドを参照してこれを使用していくつかの操作を実行できます。

たとえば、Bashでは、あなたのアクションはイベントインジケータのコマンド履歴を参照します。 ~からバッシュマニュアル:

イベントインジケータは、履歴リストのコマンドラインエントリへの参照です。参照が絶対的でない場合、イベントは履歴リストの現在の場所に基づいています。

!

後にスペース、タブ、行末、=または(extglob組み込みコマンドを使用してシェルオプションが有効になっている場合shopt)がない場合は、履歴の交換を開始します。

!string

文字列で始まる履歴リストの現在位置より前の最新コマンドを参照します。

実際の内部コンテンツはソースコードを読み取ることができます。get_history_eventバッシュ4.3から始まります。

おすすめ記事