From e13f571d119cdd6fedef3f748a264bb143cecc70 Mon Sep 17 00:00:00 2001 From: Eivind Uggedal Date: Mon, 15 Feb 2016 09:48:32 +0000 Subject: [PATCH] tar: support -f - for stdin/out --- tar.1 | 3 ++- tar.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tar.1 b/tar.1 index 8394fdb..7cc34b4 100644 --- a/tar.1 +++ b/tar.1 @@ -32,7 +32,8 @@ before beginning. .It Fl f Ar file Set .Ar file -as input | output archive instead of stdin | stdout. +as input | output archive instead of stdin | stdout. If '-', +stdin | stdout is used. .It Fl m Do not preserve modification time. .It Fl t diff --git a/tar.c b/tar.c index b4ba2d6..10b2024 100644 --- a/tar.c +++ b/tar.c @@ -550,7 +550,7 @@ main(int argc, char *argv[]) switch (mode) { case 'c': tarfd = 1; - if (file) { + if (file && *file != '-') { tarfd = open(file, O_WRONLY | O_TRUNC | O_CREAT, 0644); if (tarfd < 0) eprintf("open %s:", file); @@ -571,7 +571,7 @@ main(int argc, char *argv[]) case 't': case 'x': tarfd = 0; - if (file) { + if (file && *file != '-') { tarfd = open(file, O_RDONLY); if (tarfd < 0) eprintf("open %s:", file);