単一のコマンドラインに2つの結合置換がありますか?

単一のコマンドラインに2つの結合置換がありますか?

これはうまくいきます:

ls /path/{foo,bar}/

さて、これを効率的に実行するにはどうすればよいですか?

cp /path/foo/bunch/of/stuff/foo.txt /path/bar/bunch/of/stuff/bar.txt

単一のコマンドラインでショートカットを使用できますか?

つまりcp /path/{foo,bar}/file.txt、同時に行われるべき2つの交換はどこにありますか?

実際には、複数の結合された中括弧拡張が必要ですが、可能なすべての組み合わせが生成されるわけではありません。

ベストアンサー1

交換には以下が含まれます/

cp /path/{foo/foo,bar/bar}.txt

等しい

cp /path/foo/foo.txt /path/bar/bar.txt

もう一つの方法は、検索して置換することです。 「foo」にスラッシュが含まれていない限り動作します。

set /path/foo/bunch/of/stuff/foo.txt; cp $1 ${1//foo/bar}

おすすめ記事