aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cli/xargs.md
diff options
context:
space:
mode:
authorJohannes Stoelp <johannes.stoelp@gmail.com>2024-11-17 00:01:08 +0100
committerJohannes Stoelp <johannes.stoelp@gmail.com>2024-11-17 00:01:08 +0100
commitdeb4619a79deace26923e91a93b6d7bbfce40e78 (patch)
treebfaea20071fd17bcc31cd5c75ff0b7ddce03a224 /src/cli/xargs.md
parentb9d649c726fcd4635e26cf54624152cbe43c9d5e (diff)
downloadnotes-master.tar.gz
notes-master.zip
xargs: initial notesHEADmaster
Diffstat (limited to 'src/cli/xargs.md')
-rw-r--r--src/cli/xargs.md23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/cli/xargs.md b/src/cli/xargs.md
new file mode 100644
index 0000000..a6f3c8c
--- /dev/null
+++ b/src/cli/xargs.md
@@ -0,0 +1,23 @@
+# xargs(1)
+
+```
+xargs [opts] [cmd [init-args]]
+ -l [<num>] maximal number of lines per cmd invocation
+ if <num> it not provided, num=1 is assumed
+ -I <str> replace <str> in the [init-args] with the arg;
+ this implies -l, and hence processes one arg at a time
+```
+
+## Example
+
+Collect arguments and prefix them with another option.
+```sh
+# Using -l to process one arg at a time.
+eval strace -f (find /dev -name 'std*' | xargs -l echo -P | xargs) ls
+
+# Using -I to place the arg at the specified location.
+eval strace -f (find /dev -name 'std*' | xargs -I {} echo -P {}) ls
+
+# Both commands achieve the same thing and result in something like:
+# eval strace -f -P /dev/stdin -P /dev/stdout -P /dev/stderr ls
+``` \ No newline at end of file