2024-02-21 14:09:46 +01:00
|
|
|
# seep
|
2024-02-21 12:19:49 +01:00
|
|
|
|
2024-02-21 16:26:57 +01:00
|
|
|
Print `stdin` to terminal, then pipe into next process.
|
|
|
|
|
|
|
|
`seep` (short for see pipe and also to describe leaks in real pipes) has the
|
|
|
|
purpose of letting you peek at what you're piping.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
On Unix like systems, you can pass the output (`stdout`) of one process to the
|
|
|
|
other as input, like this: `echo "foo" | hexdump`. In some cases, the output of
|
|
|
|
the first command might contain information that a user might want to look at.
|
|
|
|
|
|
|
|
When the second process does not show the information it received, the user
|
|
|
|
cannot *see* the information produced by the first program. This is where `seep`
|
|
|
|
comes useful:
|
|
|
|
|
|
|
|
To look at the output of process one, we pipe it to `seep` and then pipe the
|
|
|
|
output of `seep` to process two. `seep` will show us what information it
|
|
|
|
receives and pass it over to process two:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ ls | seep | grep src
|
|
|
|
Cargo.lock
|
|
|
|
Cargo.toml
|
|
|
|
LICENSE
|
|
|
|
README.md
|
|
|
|
scripts
|
|
|
|
src
|
|
|
|
target
|
|
|
|
|
|
|
|
src
|
|
|
|
```
|
|
|
|
(list files and dirs, show all with `seep`, show only containing "src")
|
|
|
|
|
|
|
|
## Similarity to `tee`
|
|
|
|
|
|
|
|
The command `tee` is part of the coreutils and available on almost any Unix like
|
|
|
|
system. It can be used to achieve similar things as `seep`, for example:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ ls | tee $TTY | grep src
|
|
|
|
Cargo.lock
|
|
|
|
Cargo.toml
|
|
|
|
LICENSE
|
|
|
|
README.md
|
|
|
|
scripts
|
|
|
|
src
|
|
|
|
target
|
|
|
|
src
|
|
|
|
```
|
|
|
|
(list files and dirs, show all with `tee`, show only containing "src")
|
|
|
|
|
|
|
|
`tee` and `seep` do not have the same features. Currently, `seep` cannot output
|
|
|
|
to files specified with cli arguments, and `seep`'s focus lies on presenting
|
|
|
|
information to the user.
|