4.9 将命令的输出追加到文件

>>

前面讲述了>符号可以将输出从stdout重定向到文件。例如,可以非常容易地将date命令的输出重定向到文件:

  1. $ date
  2. Mon Nov 21 21:33:58 CST 2005
  3. $ date > hank_mobley.txt
  4. $ cat hank_mobley.txt
  5. Mon Nov 21 21:33:58 CST 2005

记住,使用>重定向时,如果文件不存在,就会创建一个新文件;如果文件已经存在,则会覆盖已有的文件。但是,如果使用>>来代替>,就会把输出追加到指定文件的底部(如果文件不存在,就会创建它)。

  1. $ cat hank_mobley.txt
  2. Mon Nov 21 21:33:58 CST 2005
  3. $ ls -1F Hank_Mobley/* >> hank_mobley.txt
  4. $ cat hank_mobley.txt
  5. Mon Nov 21 21:33:58 CST 2005
  6. 1958_Peckin'_Time/
  7. 1960_Roll_Call/
  8. 1960_Soul_Station/
  9. 1961_Workout/
  10. 1963_No_Room_For_Squares/

警告 慎用>>。如果无意间输成了>,就不是追加,而是覆盖文件!