summaryrefslogtreecommitdiffstats
path: root/bin/mv
diff options
context:
space:
mode:
Diffstat (limited to 'bin/mv')
-rw-r--r--bin/mv/mv.119
-rw-r--r--bin/mv/mv.c19
2 files changed, 29 insertions, 9 deletions
diff --git a/bin/mv/mv.1 b/bin/mv/mv.1
index f113a3a..36ec8e7 100644
--- a/bin/mv/mv.1
+++ b/bin/mv/mv.1
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)mv.1 8.1 (Berkeley) 5/31/93
-.\" $Id: mv.1,v 1.3 1995/08/15 19:44:39 joerg Exp $
+.\" $Id: mv.1,v 1.4 1996/02/18 18:44:56 wosch Exp $
.\"
.Dd May 31, 1993
.Dt MV 1
@@ -77,17 +77,25 @@ The following options are available:
Do not prompt for confirmation before overwriting the destination
path.
(The
-.Fl i
-option is ignored if the
.Fl f
-option is specified.)
+option overrides any previous
+.Fl i
+options.)
.It Fl i
Causes
.Nm mv
to write a prompt to standard error before moving a file that would
overwrite an existing file.
-If the response from the standard input begins with the character ``y'',
+If the response from the standard input begins with the character
+.Sq Li y
+or
+.Sq Li Y ,
the move is attempted.
+(The
+.Fl i
+option overrides any previous
+.Fl f
+options.)
.El
.Pp
It is an error for either the
@@ -121,6 +129,7 @@ The
utility exits 0 on success, and >0 if an error occurs.
.Sh SEE ALSO
.Xr cp 1 ,
+.Xr rm 1 ,
.Xr symlink 7
.Sh STANDARDS
The
diff --git a/bin/mv/mv.c b/bin/mv/mv.c
index 1d05ad9..f9de076 100644
--- a/bin/mv/mv.c
+++ b/bin/mv/mv.c
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: mv.c,v 1.5 1996/02/19 00:44:19 wosch Exp $
+ * $Id: mv.c,v 1.6 1996/02/19 05:51:13 pst Exp $
*/
#ifndef lint
@@ -83,9 +83,11 @@ main(argc, argv)
switch (ch) {
case 'i':
iflg = 1;
+ fflg = 0;
break;
case 'f':
fflg = 1;
+ iflg = 0;
break;
default:
usage();
@@ -149,6 +151,13 @@ do_move(from, to)
* make sure the user wants to clobber it.
*/
if (!fflg && !access(to, F_OK)) {
+
+ /* prompt only if source exist */
+ if (lstat(from, &sb) == -1) {
+ warn("%s", from);
+ return (1);
+ }
+
ask = 0;
if (iflg) {
(void)fprintf(stderr, "overwrite %s? ", to);
@@ -164,7 +173,7 @@ do_move(from, to)
if (ask) {
if ((ch = getchar()) != EOF && ch != '\n')
while (getchar() != '\n');
- if (ch != 'y')
+ if (ch != 'y' && ch != 'Y')
return (0);
}
}
@@ -299,7 +308,9 @@ copy(from, to)
void
usage()
{
- (void)fprintf(stderr,
-"usage: mv [-if] src target;\n or: mv [-if] src1 ... srcN directory\n");
+ (void)fprintf(stderr,
+"\
+usage: mv [-i | -f] src target;\n\
+ or: mv [-i | -f] src1 ... srcN directory\n");
exit(1);
}
OpenPOWER on IntegriCloud