Add the -n option, which automatically answers "no" to the overwrite question.
This commit is contained in:
parent
98b28ee5b4
commit
dce742c573
15
bin/mv/mv.1
15
bin/mv/mv.1
@ -43,7 +43,7 @@
|
||||
.Nd move files
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl f | Fl i
|
||||
.Op Fl f | Fl i | Fl n
|
||||
.Op Fl v
|
||||
.Ar source target
|
||||
.Nm
|
||||
@ -81,6 +81,8 @@ path.
|
||||
.Fl f
|
||||
option overrides any previous
|
||||
.Fl i
|
||||
or
|
||||
.Fl n
|
||||
options.)
|
||||
.It Fl i
|
||||
Cause
|
||||
@ -96,6 +98,17 @@ the move is attempted.
|
||||
.Fl i
|
||||
option overrides any previous
|
||||
.Fl f
|
||||
or
|
||||
.Fl n
|
||||
options.)
|
||||
.It Fl n
|
||||
Do not overwriting an existing file.
|
||||
(The
|
||||
.Fl n
|
||||
option overrides any previous
|
||||
.Fl f
|
||||
or
|
||||
.Fl i
|
||||
options.)
|
||||
.It Fl v
|
||||
Cause
|
||||
|
18
bin/mv/mv.c
18
bin/mv/mv.c
@ -68,7 +68,7 @@ static const char rcsid[] =
|
||||
|
||||
#include "pathnames.h"
|
||||
|
||||
int fflg, iflg, vflg;
|
||||
int fflg, iflg, nflg, vflg;
|
||||
|
||||
int copy(char *, char *);
|
||||
int do_move(char *, char *);
|
||||
@ -85,15 +85,19 @@ main(int argc, char *argv[])
|
||||
int ch;
|
||||
char path[PATH_MAX];
|
||||
|
||||
while ((ch = getopt(argc, argv, "fiv")) != -1)
|
||||
while ((ch = getopt(argc, argv, "finv")) != -1)
|
||||
switch (ch) {
|
||||
case 'i':
|
||||
iflg = 1;
|
||||
fflg = 0;
|
||||
fflg = nflg = 0;
|
||||
break;
|
||||
case 'f':
|
||||
fflg = 1;
|
||||
iflg = 0;
|
||||
iflg = nflg = 0;
|
||||
break;
|
||||
case 'n':
|
||||
nflg = 1;
|
||||
fflg = iflg = 0;
|
||||
break;
|
||||
case 'v':
|
||||
vflg = 1;
|
||||
@ -172,7 +176,11 @@ do_move(char *from, char *to)
|
||||
|
||||
#define YESNO "(y/n [n]) "
|
||||
ask = 0;
|
||||
if (iflg) {
|
||||
if (nflg) {
|
||||
if (vflg)
|
||||
printf("%s not overwritten\n", to);
|
||||
return (0);
|
||||
} else if (iflg) {
|
||||
(void)fprintf(stderr, "overwrite %s? %s", to, YESNO);
|
||||
ask = 1;
|
||||
} else if (access(to, W_OK) && !stat(to, &sb)) {
|
||||
|
Loading…
Reference in New Issue
Block a user