将多个输出发送到文件而不覆盖

时间:2013-02-10 07:05:54

标签: unix

我正在尝试将UNIX中两个命令的输出发送到名为“log.txt”的文件

现在我一直在努力:

# date ; quota -v myName > log.txt

目的是让我的log.txt文件看起来像:

Mon Sep 11 14:13:34 PDT 2006
Disk Quota for ....
...
...

第一行代表date命令,其余代表quota命令。

有没有办法将这两个命令的输出发送到同一个log.txt文件而不会互相覆盖?

2 个答案:

答案 0 :(得分:3)

使用括号将命令分组以重定向标准输出。

(date ; quota -v myName) > log.txt

例如:

# (date; echo "hi") > foo
# cat foo
Sat Feb  9 23:09:15 PST 2013
hi

如果你想在一个大脚本中拥有许多命令,路易斯对>>的回答会更好。第一个命令应该使用>,以便它截断文件的任何现有内容。所有其他命令都使用>>附加到文件。

答案 1 :(得分:1)

你想追加,使用>> 这样的东西:

date >> log.txt && quota -v myName >> log.txt