Linux

Linux/Debian - moreutils 中的“小便”有什麼作用?

  • August 3, 2014

我最近在 Debian(和 Ubuntu)中發現了 ‘moreutils’ 包。它是方便的 unix 工具的集合。

命令之一是“小便”。手冊頁說:

小便就像三通,但用於管道。

然而這是一個簡短的手冊頁,我已經送出了一個關於它的錯誤。有誰知道它的作用,如何使用它,為什麼要使用它?

以下是你可以用小便做的事情:

seq 5 -1 1 > file
cat file |pee 'sort -u > sorted' 'sort -R > unsorted'

所以 pee 使用 shell 管道而不是文件。

bash 不需要小便,它可以將 shell 命令作為文件打開:

cat file |tee >(sort -u > sorted) >(sort -R > unsorted)

如果您tee首先使用它可能更容易理解。這個有用的舊工具接受標準輸入並寫入多個文件以及標準輸出。下列:

echo "Hello world" | tee one two

將創建兩個文件,名為onetwo,都包含字元串Hello world。它還將列印到您的終端。


現在pee執行類似的功能,但不是將輸出重定向到多個文件,而是重定向到多個輔助命令,ala 管道。tee它與不將原始標準輸入發送到標準輸出這一點略有不同,因為將它與輔助命令的輸出結合起來是沒有意義的。以下非常簡單的範例:

echo "Hello world" | pee cat cat

將字元串輸出Hello world到您的終端兩次。這是因為兩個實例中的每一個都cat接收標準輸出並執行該cat操作,即列印。

引用自:https://serverfault.com/questions/96245