Bash Brace シェル拡張に失敗しました

Bash Brace シェル拡張に失敗しました

file1、、、、file2という5つのファイルがありfile3ます。次のコマンドを実行しようとします。このコマンドを実行すると、次のエラーが発生します。私の目標は、1つのコマンドでファイルをコピーするためにいくつかのテキストをエコーすることです。この目標をどのように達成できますか?よろしくお願いします。file4file5echo "contents" >> file{1,2,3,4,5}-bash: file{1,2,3,4,5}: ambiguous redirect

ベストアンサー1

複数のファイルにリダイレクトできません。代わりに質問に追加のリダイレクト演算子を使用するのでtee -a(「追加」)を使用してください。-a>>

echo "contents" | tee -a file{1,2,3,4,5}

別のオプションは、bashの代わりにzshを使用することです。これは複数のファイルにリダイレクトできます。

[birdsnest ~]% echo foo > /tmp/{foo,bar}
[birdsnest ~]% cat /tmp/foo 
foo
[birdsnest ~]% cat /tmp/bar 
foo

おすすめ記事