cat >> 配合 ctrl+d 或 here document 可高效追加多行文本,自动创建文件、保留原内容,适用于脚本、配置和日志场景;printf 和 tee 是更严谨或多功能的替代方案。

cat 命令配合 >> 追加符号,能高效写入多行文本,无需打开编辑器,特别适合脚本、配置追加或日志记录场景。
用 cat >> + Ctrl+D 手动追加多行
适用于少量内容、交互式输入:
- 执行 cat >> 文件名,回车后进入输入模式
- 逐行键入内容,每行按 Enter 换行
- 输完后按 Ctrl+D(不是 Ctrl+C),立即保存并退出
- 若文件不存在,会自动创建;原有内容保持不变,新内容追加在末尾
用 cat >> + Here Document(
适合预设内容较多、需在命令中直接定义多行文本的情况:
- 语法:cat >> 文件名 (EOF 可替换为任意标识符,如 STOP、END)
- 输入多行文本,每行正常换行
- 最后一行单独写 EOF(必须顶格、无空格、无其他字符),回车即完成追加
- 例如:cat >> config.conf server {
listen 80;
}
EOF
带特殊字符时的处理技巧
当文本含 $、`、\ 等 Shell 元字符,需防止被解释:
- 用单引号包裹起始标识符:cat >> script.sh —— 此时所有内容原样写入
- 不加引号时,变量和命令会被展开,如 $HOME 会替换成实际路径
- 若只需局部转义,也可用反斜杠:\$HOME,但整体加引号更安全简洁
对比 echo 和 tee 的适用场景
cat 不是唯一选择,不同场景有更优解:
- echo "单行" >> file:最简快捷,适合一行文本
- printf "%s\n" "行1" "行2" >> file:避免 echo 的换行/转义歧义,更严谨
- tee -a file:适合同时输出到终端和文件,或向多个文件追加
- cat >> 优势在于天然支持多行交互输入与 Here Document,逻辑清晰、脚本友好











