Alt + Shift + {とは何ですか?


10

CentOSとUbuntuでこれをテストしました。ファイルが大量にあるディレクトリにいる場合

$ ls
day1.tar.gz  day2.tar.gz  day3.tar.gz  day4.tar.gz  day5.tar.gz  day6.tar.gz  day7.tar.gz  day8.tar.gz day9.tar.gz day10.tar.gz

そして、あなたはAlt+Shift+{それをヒットすると、すべてのファイル名がawk-completeになります

<Alt+Shift+{>

完了:

 day{1{0.tar.gz,.tar.gz},2.tar.gz,3.tar.gz,4.tar.gz,5.tar.gz,6.tar.gz,7.tar.gz,8.tar.gz,9.tar.gz}

そして

day1<Alt+Shift+{>

完了:

day1{0.tar.gz,.tar.gz}

質問:これは何ですか?これは何と呼ばれていますか?それはどこで役に立ちますか?どうすれば設定できますか?1で始まらない部分文字列で終わるファイルに対してこれを行うことはできますか?

回答:


9

Bashでは、readline関数を実行しますcomplete-into-braces

ブレース展開は、複数のファイルへの参照を短縮する便利な方法です。

例えば:

ls -l /path/to/dir/*.{c,h}

「.c」または「.h」で終わるすべてのファイルをリストします。

からman bash

complete-into-braces(M- {)
ファイル名補完を実行し、中括弧で囲まれた可能な候補のリストを挿入して、リストがシェルで利用できるようにします(上記の中括弧の展開を参照)。

そして

ブレース展開
ブレース展開は、任意の文字列を生成できるメカニズムです。このメカニズムはパス名展開に似ていますが、生成されたファイル名が存在する必要はありません。ブレース展開されるパターンは、オプションのプリアンブルの形式を取り、その後に一連のコンマ区切りの文字列または中括弧のペア間のシーケンス式が続き、その後にオプションのポストスクリプトが続きます。プリアンブルは中括弧内に含まれる各文字列の前に付けられ、その後、ポストスクリプトが結果の各文字列に追加され、左から右に拡張されます。

ブレース展開は入れ子にすることができます。各展開された文字列の結果はソートされません。左から右の順序が保持されます。たとえば、a {d、c、b} eは「ade ace abe」に展開されます。

文字列で始まるファイルで機能するように、定義により完了が完了します。


びっくりです。逆ブレース展開です!...いいね;)...
Peter.O
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.