首页/系统/Linux 运维命令速查/sponge 管道结果回写同一文件
本包目录(613 条)
文件与目录76 条
文本处理77 条
网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

sponge 管道结果回写同一文件

moreutils 小工具:把管道输出先攒起来再写回原文件,避免「读一个文件同时覆写它」导致的清空事故。

Linux 运维命令速查系统更新于 2026-10-12
用途安全地原地写回管道结果
语法命令 | sponge 目标文件
来源moreutils(需安装)

常用示例

常用示例
grep -v '^#' app.conf | sponge app.conf
sort -u url.txt | sponge url.txt
sed 's/old/new/g' f | sponge f     # 替代 sed -i 的显式写法
sponge 未装时:apt install moreutils 或 dnf install moreutils(EPEL)。

易错点

  • sponge 先把全部输入读进内存/临时区再写:GB 级文件不适合
  • 它只保证写完才截断目标文件,不保证中途失败可回滚——大改动仍建议先备份

数据来源与参考

  • man 1 sponge(moreutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌