mirror of git://git.code.sf.net/p/zsh/code
44153: rm: Accept -R as equivalent to -r
This commit is contained in:
parent
9b267ff1eb
commit
5267bdc4ef
|
@ -7,6 +7,9 @@
|
|||
|
||||
2019-03-21 Matthew Martin <phy1729@gmail.com>
|
||||
|
||||
* 44153: Doc/Zsh/mod_files.yo, Src/Modules/files.c: rm: Accept
|
||||
-R as equivalent to -r.
|
||||
|
||||
* 44149: Completion/Unix/Command/_mkdir,
|
||||
Completion/Unix/Command/_stat: Use _pick_variant -b.
|
||||
|
||||
|
|
|
@ -144,15 +144,15 @@ fall back on copying and removing files; if this behaviour is desired,
|
|||
use tt(cp) and tt(rm) manually. This may change in a future version.
|
||||
)
|
||||
findex(rm)
|
||||
item(tt(rm) [ tt(-dfirs) ] var(filename) ...)(
|
||||
item(tt(rm) [ tt(-dfiRrs) ] var(filename) ...)(
|
||||
Removes files and directories specified.
|
||||
|
||||
Normally, tt(rm) will not remove directories (except with the tt(-r)
|
||||
option). The tt(-d) option causes tt(rm) to try removing directories
|
||||
Normally, tt(rm) will not remove directories (except with the tt(-R) or tt(-r)
|
||||
options). The tt(-d) option causes tt(rm) to try removing directories
|
||||
with tt(unlink) (see manref(unlink)(2)), the same method used for files.
|
||||
Typically only the super-user can actually succeed in unlinking
|
||||
directories in this way.
|
||||
tt(-d) takes precedence over tt(-r).
|
||||
tt(-d) takes precedence over tt(-R) and tt(-r).
|
||||
|
||||
By default, the user will be queried before removing any file
|
||||
that the user cannot write to, but writable files will be silently
|
||||
|
@ -162,9 +162,9 @@ any files. The tt(-f) option causes files to be
|
|||
silently deleted, without querying, and suppresses all error indications.
|
||||
tt(-f) takes precedence.
|
||||
|
||||
The tt(-r) option causes tt(rm) to recursively descend into directories,
|
||||
deleting all files in the directory before removing the directory with
|
||||
the tt(rmdir) system call (see manref(rmdir)(2)).
|
||||
The tt(-R) and tt(-r) options cause tt(rm) to recursively descend into
|
||||
directories, deleting all files in the directory before removing the directory
|
||||
with the tt(rmdir) system call (see manref(rmdir)(2)).
|
||||
|
||||
The tt(-s) option is a zsh extension to tt(rm) functionality. It enables
|
||||
paranoid behaviour, intended to avoid common security problems involving
|
||||
|
|
|
@ -613,7 +613,8 @@ bin_rm(char *nam, char **args, Options ops, UNUSED(int func))
|
|||
rmm.opt_interact = OPT_ISSET(ops,'i') && !OPT_ISSET(ops,'f');
|
||||
rmm.opt_unlinkdir = OPT_ISSET(ops,'d');
|
||||
err = recursivecmd(nam, OPT_ISSET(ops,'f'),
|
||||
OPT_ISSET(ops,'r') && !OPT_ISSET(ops,'d'),
|
||||
!OPT_ISSET(ops,'d') && (OPT_ISSET(ops,'R') ||
|
||||
OPT_ISSET(ops,'r')),
|
||||
OPT_ISSET(ops,'s'),
|
||||
args, recurse_donothing, rm_dirpost, rm_leaf, &rmm);
|
||||
return OPT_ISSET(ops,'f') ? 0 : err;
|
||||
|
@ -798,7 +799,7 @@ static struct builtin bintab[] = {
|
|||
BUILTIN("ln", 0, bin_ln, 1, -1, BIN_LN, LN_OPTS, NULL),
|
||||
BUILTIN("mkdir", 0, bin_mkdir, 1, -1, 0, "pm:", NULL),
|
||||
BUILTIN("mv", 0, bin_ln, 2, -1, BIN_MV, "fi", NULL),
|
||||
BUILTIN("rm", 0, bin_rm, 1, -1, 0, "dfirs", NULL),
|
||||
BUILTIN("rm", 0, bin_rm, 1, -1, 0, "dfiRrs", NULL),
|
||||
BUILTIN("rmdir", 0, bin_rmdir, 1, -1, 0, NULL, NULL),
|
||||
BUILTIN("sync", 0, bin_sync, 0, 0, 0, NULL, NULL),
|
||||
/* The "safe" zsh-only names */
|
||||
|
@ -808,7 +809,7 @@ static struct builtin bintab[] = {
|
|||
BUILTIN("zf_ln", 0, bin_ln, 1, -1, BIN_LN, LN_OPTS, NULL),
|
||||
BUILTIN("zf_mkdir", 0, bin_mkdir, 1, -1, 0, "pm:", NULL),
|
||||
BUILTIN("zf_mv", 0, bin_ln, 2, -1, BIN_MV, "fi", NULL),
|
||||
BUILTIN("zf_rm", 0, bin_rm, 1, -1, 0, "dfirs", NULL),
|
||||
BUILTIN("zf_rm", 0, bin_rm, 1, -1, 0, "dfiRrs", NULL),
|
||||
BUILTIN("zf_rmdir", 0, bin_rmdir, 1, -1, 0, NULL, NULL),
|
||||
BUILTIN("zf_sync", 0, bin_sync, 0, 0, 0, NULL, NULL),
|
||||
|
||||
|
|
Loading…
Reference in New Issue