Unix Power Tools の奇妙なエイリアス "find . -name '*\!{*}*' -ls"

Unix Power Tools の奇妙なエイリアス

Unix Power Tools第3版175ページから:

セクション 9.27 では、ディレクトリの中間パスを一致させる方法を示します。以下は非常に便利な、より簡単な「ファイルを探す」エイリアスです。

alias ff "find . -name '*\!{*}*' -ls"

ファイルまたはディレクトリ名を指定すると、エイリアスはその引数を含むファイルまたはディレクトリ名の長いリストを提供します。

(これも利用可能なオンライン.)

-name私はオペレータの主張を全く理解していません。これはスペルエラーですか?特定のバージョンでのみ機能しますfindか?バックスラッシュ、中括弧、中括弧は何をしますか?

ベストアンサー1

これはcshエイリアスです。与えられた引数は、-nameインタプリタではなくシェルによって解釈されますfind。私が正しく理解した場合は、与えられた\!{*}引数に置き換えられますff(通常は\!*)。この本がシェルを指定しないことは本当に奇妙です。

デフォルトでエイリアスを定義するには、次のように入力します。

ff test

走る

find . -name '*test*' -ls

(そして複数の引数を正常に処理しません)。

この本の第2版では、テキストは質問に提供されたのと同じ方法でエイリアスを定義し、csh_init付属のCDのとを指します。sh_init(これはセクション17.04です。)興味深いことに、csh_initCDにはエイリアスは定義されていませんが、sh_init同等の機能は次のとおりですff

ff() { find . -name "*$1*" -ls; }

おすすめ記事