On Sun, Jan 30, 2000 at 09:06:33AM +0900, Jun Kuriyama wrote:
>
> I found difference between "rm -rf" for non-exist file on readonly nfs
> and usual non-writable directory.
>
> In this example, /usr/src is readonly nfs mounted and /usr/bin is
> normal filesystem but not writable. And file "a" is not exist.
>
> -----
> % rm /usr/bin/a
> rm: /usr/bin/a: No such file or directory
> % rm -f /usr/bin/a
> % rm -rf /usr/bin/a
> % rm /usr/src/a
> rm: /usr/src/a: No such file or directory
> % rm -f /usr/src/a
> % rm -rf /usr/src/a
> rm: /usr/src/a: Read-only file system
> %
> -----
>
> For "-f" option, last behavior is expected one, or not?
This happens on either NFS-mounted or real directories. It think that since
the manual of rm(1) says:
-f Attempt to remove the files without prompting for confirma-
tion, regardless of the file's permissions. If the file does
not exist, do not display a diagnostic message or modify the
exit status to reflect an error.
it ought to print nothing in such a case. Let me know if the small patch
shown below helps in correcting this. I can't check this cause I got bitten
by getflags() in(s)anity last night when I cvsup'ed.
The diff -u output is:
%%% patch begins here %%%
--- /usr/src/bin/rm/rm.c Sat Jan 29 01:14:23 2000
+++ rm.c Sun Jan 30 09:32:18 2000
@@ -196,7 +196,9 @@
}
continue;
case FTS_ERR:
- errx(1, "%s: %s", p->fts_path, strerror(p->fts_errno));
+ if (!fflag)
+ errx(1, "%s: %s", p->fts_path,
+ strerror(p->fts_errno));
case FTS_NS:
/*
* FTS_NS: assume that if can't stat the file, it
%%% patch ends here %%%
--
Giorgos Keramidas, < keramida @ ceid . upatras . gr >
"Don't let your schooling interfere with your education." [Mark Twain]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message