首页/系统/Linux 运维命令速查/mkfifo 创建命名管道
文件与目录76 条

mkfifo 创建命名管道

创建 FIFO 文件实现进程间通信:一端写、一端读,数据不进磁盘;常用于流式备份与命令衔接。

Linux 运维命令速查系统更新于 2026-10-12
用途创建命名管道(FIFO)
语法mkfifo [-m 权限] 路径
特性无数据缓存:写端阻塞到读端打开,反之亦然

两终端演示

两终端演示
# 终端 1(读端,会先阻塞)
cat /tmp/myfifo
# 终端 2(写端)
echo hello > /tmp/myfifo

衔接远程备份

衔接远程备份
mkfifo /tmp/pipe
tar czf - /data > /tmp/pipe &
ssh backup@nas 'cat > /backup/data.tgz' < /tmp/pipe
rm -f /tmp/pipe
FIFO 里不落数据也没有大小:ls -l 显示类型为 p(如 prw-r--r--),du 为 0。

易错点

  • 打开 FIFO 会阻塞直到另一端也打开:脚本里先起读端再写(或放后台),否则看起来像「卡死」
  • 用后记得 rm:残留 FIFO 被后续程序当普通文件打开时同样会阻塞

数据来源与参考

  • man 1 mkfifo(GNU coreutils 手册)
  • man 7 fifo(Linux man-pages 手册)

相关工具

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