Linux常用管道

来自牛奶河Wiki
跳到导航 跳到搜索

  管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道。有名管道叫named pipe或者FIFO(先进先出),可以用函数mkfifo()创建。

管道的结构

  在 Linux 中,管道的实现并没有使用专门的数据结构,而是借助了文件系统的file结构和VFS的索引节点inode。通过将两个 file 结构指向同一个临时的 VFS 索引节点,而这个 VFS 索引节点又指向一个物理页面而实现的。

gzip

gzip -dc filename.gz | wc -l

unzip

unzip -cq ${HN} '*.csv' | wc -l

tar

  • 不指定解压文件或目录,则输出全部
    • hadoop fs -cat /bakdata/gio/visit/visit_202102.tar.gz |tar -xzv 20210201.csv
  • 不包括路径
    • --exclude=$PATH1 --exclude=$PATH2
  • 解决打包同一批文件 hash 不同问题
    • tar -c pangolin | gzip -n > pangolin.tar.gz