bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use (original) (raw)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
From: | Bernhard Voelker |
---|---|
Subject: | bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call |
Date: | Thu, 21 Nov 2013 01:03:15 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5 |
On 11/20/2013 02:44 PM, Eric Blake wrote:
On 11/19/2013 11:45 PM, Bernhard Voelker wrote: > Maybe "cannot remove directory" is a bit weak - it's more like > "refusing to remove dot|dot-dot|root directory".
Indeed, a clearer error message would be possible.
What about the following?
$ src/rm -r src/. src/rm: refusing to remove '.' or '..' directory: skipping 'src/.'
I didn't want to explicitly mention POSIX here ... it's just to clarify that rm(1) does not swallow errors from the kernel like EPERM, etc.
The texinfo file is enhanced in the patch below, too.
Have a nice day, Berny
From f85ec85852ea62e4fe4510044ffb4b31880a6b7c Mon Sep 17 00:00:00 2001 From: Bernhard Voelker <address@hidden> Date: Thu, 21 Nov 2013 00:47:36 +0100 Subject: [PATCH] doc: enhance diagnostic when rm skips "." or ".." arguments
The error diagnostic "rm: cannot remove directory: '.'" does not give the user a hint for the reason. Issue a clearer error message.
- src/remove.c (rm_fts): Enhance the error diagnostic in the above case to emphasize that skipping is done deliberately. In the corresponding comment, mention that POSIX mandates this behavior. Likewise in the subsequent comment for skipping "/".
- doc/coreutils.texi (rm invocation): In the paragraph describing the above behavior, mention that POSIX mandates it.
doc/coreutils.texi | 3 ++- src/remove.c | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/doc/coreutils.texi b/doc/coreutils.texi index 035f2e6..64713dc 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -9281,7 +9281,8 @@ the @option{-f} or @option{--force} option is not given, or the If the response is not affirmative, the file is skipped.
Any attempt to remove a file whose last file name component is address@hidden or @file{..} is rejected without any prompting. address@hidden or @file{..} is rejected without any prompting, as mandated +by POSIX.
@emph{Warning}: If you use @command{rm} to remove a file, it is usually possible to recover the contents of that file. If you want more assurance diff --git a/src/remove.c b/src/remove.c index cdbbec5..3d386cf 100644 --- a/src/remove.c +++ b/src/remove.c @@ -437,17 +437,21 @@ rm_fts (FTS *fts, FTSENT *ent, struct rm_options const x) / Perform checks that can apply only for command-line arguments. */ if (ent->fts_level == FTS_ROOTLEVEL) {
/* If the basename of a command line argument is "." or "..",
/* POSIX says:
If the basename of a command line argument is "." or "..", diagnose it and do nothing more with that argument. */ if (dot_or_dotdot (last_component (ent->fts_accpath))) {
error (0, 0, _("cannot remove directory: %s"),
quote (ent->fts_path));
error (0, 0,
_("refusing to remove %s or %s directory: skipping %s"),
quote_n (0, "."), quote_n (1, ".."),
quote_n (2, ent->fts_path)); fts_skip_tree (fts, ent); return RM_ERROR; }
/* If a command line argument resolves to "/" (and --preserve-root
/* POSIX also says:
If a command line argument resolves to "/" (and --preserve-root is in effect -- default) diagnose and skip it. */ if (ROOT_DEV_INO_CHECK (x->root_dev_ino, ent->fts_statp)) {
-- 1.8.3.1
- bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, (continued)
- bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Pádraig Brady, 2013/11/19
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Linda Walsh, 2013/11/19
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Eric Blake, 2013/11/19
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Linda Walsh, 2013/11/19
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Bob Proulx, 2013/11/19
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Linda Walsh, 2013/11/19
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Eric Blake, 2013/11/19
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Eric Blake, 2013/11/19
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Bernhard Voelker, 2013/11/20
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Eric Blake, 2013/11/20
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call,Bernhard Voelker <=
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Linda Walsh, 2013/11/20
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Eric Blake, 2013/11/20
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Bernhard Voelker, 2013/11/21
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Linda Walsh, 2013/11/21
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Eric Blake, 2013/11/20
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Bernhard Voelker, 2013/11/21
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Pádraig Brady, 2013/11/21
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Eric Blake, 2013/11/21
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Bernhard Voelker, 2013/11/21
* bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Eric Blake, 2013/11/21
- bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call, Pádraig Brady, 2013/11/19
- Prev by Date:bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call
- Next by Date:bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call
- Previous by thread:bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call
- Next by thread:bug#15926: RFE: unlink command already uses 'unlink' call; make 'rm' use 'remove' call
- Index(es):