mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-09 01:50:35 +00:00
Merge r204165 from head:
Add a "-x" option to chown(8)/chgrp(1) similar to the same option in du(1), cp(1) etc, to prevent the crossing of mountpoints whilst using the commands recursively. PR: bin/130855 Submitted by: keramida
This commit is contained in:
parent
4ae65fe952
commit
f9e27ffac5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/stable/8/; revision=205638
|
@ -31,7 +31,7 @@
|
|||
.\" @(#)chgrp.1 8.3 (Berkeley) 3/31/94
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd April 25, 2003
|
||||
.Dd February 21, 2010
|
||||
.Dt CHGRP 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -39,7 +39,7 @@
|
|||
.Nd change group
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl fhv
|
||||
.Op Fl fhvx
|
||||
.Oo
|
||||
.Fl R
|
||||
.Op Fl H | Fl L | Fl P
|
||||
|
@ -89,6 +89,8 @@ If the
|
|||
flag is specified more than once,
|
||||
.Nm
|
||||
will print the filename, followed by the old and new numeric group ID.
|
||||
.It Fl x
|
||||
File system mount points are not traversed.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
|
@ -125,7 +127,9 @@ In previous versions of this system, symbolic links did not have groups.
|
|||
.Pp
|
||||
The
|
||||
.Fl v
|
||||
option is non-standard and its use in scripts is not recommended.
|
||||
and
|
||||
.Fl x
|
||||
options are non-standard and their use in scripts is not recommended.
|
||||
.Sh SEE ALSO
|
||||
.Xr chown 2 ,
|
||||
.Xr fts 3 ,
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
.\" @(#)chown.8 8.3 (Berkeley) 3/31/94
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd April 25, 2003
|
||||
.Dd February 21, 2010
|
||||
.Dt CHOWN 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -36,7 +36,7 @@
|
|||
.Nd change file owner and group
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl fhv
|
||||
.Op Fl fhvx
|
||||
.Oo
|
||||
.Fl R
|
||||
.Op Fl H | Fl L | Fl P
|
||||
|
@ -44,7 +44,7 @@
|
|||
.Ar owner Ns Op : Ns Ar group
|
||||
.Ar
|
||||
.Nm
|
||||
.Op Fl fhv
|
||||
.Op Fl fhvx
|
||||
.Oo
|
||||
.Fl R
|
||||
.Op Fl H | Fl L | Fl P
|
||||
|
@ -97,6 +97,8 @@ If the
|
|||
flag is specified more than once,
|
||||
.Nm
|
||||
will print the filename, followed by the old and new numeric user/group ID.
|
||||
.It Fl x
|
||||
File system mount points are not traversed.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
|
@ -146,7 +148,9 @@ owners.
|
|||
.Pp
|
||||
The
|
||||
.Fl v
|
||||
option is non-standard and its use in scripts is not recommended.
|
||||
and
|
||||
.Fl x
|
||||
options are non-standard and their use in scripts is not recommended.
|
||||
.Sh SEE ALSO
|
||||
.Xr chgrp 1 ,
|
||||
.Xr find 1 ,
|
||||
|
|
|
@ -73,14 +73,14 @@ main(int argc, char **argv)
|
|||
{
|
||||
FTS *ftsp;
|
||||
FTSENT *p;
|
||||
int Hflag, Lflag, Rflag, fflag, hflag, vflag;
|
||||
int Hflag, Lflag, Rflag, fflag, hflag, vflag, xflag;
|
||||
int ch, fts_options, rval;
|
||||
char *cp;
|
||||
|
||||
ischown = (strcmp(basename(argv[0]), "chown") == 0);
|
||||
|
||||
Hflag = Lflag = Rflag = fflag = hflag = vflag = 0;
|
||||
while ((ch = getopt(argc, argv, "HLPRfhv")) != -1)
|
||||
Hflag = Lflag = Rflag = fflag = hflag = vflag = xflag = 0;
|
||||
while ((ch = getopt(argc, argv, "HLPRfhvx")) != -1)
|
||||
switch (ch) {
|
||||
case 'H':
|
||||
Hflag = 1;
|
||||
|
@ -105,6 +105,9 @@ main(int argc, char **argv)
|
|||
case 'v':
|
||||
vflag++;
|
||||
break;
|
||||
case 'x':
|
||||
xflag = 1;
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
|
@ -128,6 +131,8 @@ main(int argc, char **argv)
|
|||
}
|
||||
} else
|
||||
fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL;
|
||||
if (xflag)
|
||||
fts_options |= FTS_XDEV;
|
||||
|
||||
uid = (uid_t)-1;
|
||||
gid = (gid_t)-1;
|
||||
|
@ -301,11 +306,11 @@ usage(void)
|
|||
|
||||
if (ischown)
|
||||
(void)fprintf(stderr, "%s\n%s\n",
|
||||
"usage: chown [-fhv] [-R [-H | -L | -P]] owner[:group]"
|
||||
"usage: chown [-fhvx] [-R [-H | -L | -P]] owner[:group]"
|
||||
" file ...",
|
||||
" chown [-fhv] [-R [-H | -L | -P]] :group file ...");
|
||||
" chown [-fhvx] [-R [-H | -L | -P]] :group file ...");
|
||||
else
|
||||
(void)fprintf(stderr, "%s\n",
|
||||
"usage: chgrp [-fhv] [-R [-H | -L | -P]] group file ...");
|
||||
"usage: chgrp [-fhvx] [-R [-H | -L | -P]] group file ...");
|
||||
exit(1);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue