
拡張子に応じてscpファイルを作成できます。
scp sk@localhost:/home/sk/*.{txt,text} .
ただし、単一の拡張タイプをscpしようとすると失敗します。
scp sk@localhost:/home/sk/*.{txt} .
ケース#2から中括弧を削除することでこのエラーを解決できました。
ファイル拡張子の種類のみがあるため、中かっこの使用が失敗する理由は疑問に思います。
答え1
bashを使用すると仮定すると、文書説明する:
正しい形式の中括弧の拡張には、引用符のない開かっこと閉じ括弧、および引用符のない1つ以上のカンマまたは有効なシーケンス式を含める必要があります。誤って形成された中括弧の拡張は変更されません。
したがって、{foo}
これは適切に形成された中括弧拡張ではありません。
$ bash -c 'echo {foo} {foo,bar}'
{foo} foo bar
答え2
「中括弧」と呼ぶことをしばしば「中括弧」といい、使用する機能を「中括弧拡張」といいます。 Bashのマニュアルページは次のように文書化します。
サポート拡張 中括弧拡張は、任意の文字列を生成できるメカニズムです。 このメカニズムはパス名拡張と似ていますが、ファイル名の生成 もう存在する必要はありません。中かっこを拡張するパターンは、次の形式を取ります。 オプションの序文の後に、カンマで区切られた一連の文字列が続きます。 または、ペアの中かっことその後のオプションの文字の間のシーケンス式 PS。プリアンブルは、各文字列に含まれるプレフィックスです。 中かっこを使用して、各結果文字列にpsを追加します。 左から右に展開します。
中括弧内に単一の拡張子を入れると、リストされた形式(カンマ区切り文字列または中括弧ペア間のシーケンス式)と一致しないため、中括弧拡張ではありません。したがって、拡張されず、同じままです。