我想将text
连接到dir
中的所有文件。
我使用for
像以下代码一样完成这项工作。
我想知道是否有更简洁的代码可以执行相同的操作?
for fn in dir/*; do
cat text >> $fn
done
最佳答案
如果text
是文件名,请尝试:
tee -a dir/* <text >/dev/null
如果text
实际上是您要附加的某些文本,则以bash表示:tee -a dir/* <<<"text" >/dev/null
tee
是一个实用程序,可从标准输入中读取并将其写入命令行中的任意数量的文件中。它还将标准输入复制到标准输出,这就是上面使用>/dev/null
的原因。 -a
选项告诉tee
追加而不是覆盖。变异
如kvantour所建议,将输入重定向放在行的开头可能更清楚:
<text tee -a dir/* >/dev/null
(在上面,假定text
是文件名)