tar: support -f - for stdin/out

This commit is contained in:
Eivind Uggedal 2016-02-15 09:48:32 +00:00 committed by sin
parent b107489bf2
commit e13f571d11
2 changed files with 4 additions and 3 deletions

3
tar.1
View File

@ -32,7 +32,8 @@ before beginning.
.It Fl f Ar file .It Fl f Ar file
Set Set
.Ar file .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 .It Fl m
Do not preserve modification time. Do not preserve modification time.
.It Fl t .It Fl t

4
tar.c
View File

@ -550,7 +550,7 @@ main(int argc, char *argv[])
switch (mode) { switch (mode) {
case 'c': case 'c':
tarfd = 1; tarfd = 1;
if (file) { if (file && *file != '-') {
tarfd = open(file, O_WRONLY | O_TRUNC | O_CREAT, 0644); tarfd = open(file, O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (tarfd < 0) if (tarfd < 0)
eprintf("open %s:", file); eprintf("open %s:", file);
@ -571,7 +571,7 @@ main(int argc, char *argv[])
case 't': case 't':
case 'x': case 'x':
tarfd = 0; tarfd = 0;
if (file) { if (file && *file != '-') {
tarfd = open(file, O_RDONLY); tarfd = open(file, O_RDONLY);
if (tarfd < 0) if (tarfd < 0)
eprintf("open %s:", file); eprintf("open %s:", file);