find -user support by Natanael Copa <natanael.copa@gmail.com>
This commit is contained in:
parent
731d357295
commit
a100707c04
@ -83,6 +83,13 @@ config FEATURE_FIND_EXEC
|
|||||||
Support the 'find -exec' option for executing commands based upon
|
Support the 'find -exec' option for executing commands based upon
|
||||||
the files matched.
|
the files matched.
|
||||||
|
|
||||||
|
config FEATURE_FIND_USER
|
||||||
|
bool "Enable username/uid matching (-user) option"
|
||||||
|
default y
|
||||||
|
depends on FIND
|
||||||
|
help
|
||||||
|
Support the 'find -user' option for searching by username or uid.
|
||||||
|
|
||||||
config GREP
|
config GREP
|
||||||
bool "grep"
|
bool "grep"
|
||||||
default n
|
default n
|
||||||
|
@ -68,6 +68,7 @@ USE_FEATURE_FIND_MMIN( ACTS(mmin, char mmin_char; unsigned mmin_mins;))
|
|||||||
USE_FEATURE_FIND_NEWER( ACTS(newer, time_t newer_mtime;))
|
USE_FEATURE_FIND_NEWER( ACTS(newer, time_t newer_mtime;))
|
||||||
USE_FEATURE_FIND_INUM( ACTS(inum, ino_t inode_num;))
|
USE_FEATURE_FIND_INUM( ACTS(inum, ino_t inode_num;))
|
||||||
USE_FEATURE_FIND_EXEC( ACTS(exec, char **exec_argv; int *subst_count; int exec_argc;))
|
USE_FEATURE_FIND_EXEC( ACTS(exec, char **exec_argv; int *subst_count; int exec_argc;))
|
||||||
|
USE_FEATURE_FIND_USER( ACTS(user, int uid;))
|
||||||
USE_DESKTOP( ACTS(paren, action ***subexpr;))
|
USE_DESKTOP( ACTS(paren, action ***subexpr;))
|
||||||
USE_DESKTOP( ACTS(size, off_t size;))
|
USE_DESKTOP( ACTS(size, off_t size;))
|
||||||
USE_DESKTOP( ACTS(prune))
|
USE_DESKTOP( ACTS(prune))
|
||||||
@ -212,6 +213,13 @@ ACTF(exec)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_FEATURE_FIND_USER
|
||||||
|
ACTF(user)
|
||||||
|
{
|
||||||
|
return (statbuf->st_uid == ap->uid);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLE_FEATURE_FIND_PRINT0
|
#if ENABLE_FEATURE_FIND_PRINT0
|
||||||
ACTF(print0)
|
ACTF(print0)
|
||||||
{
|
{
|
||||||
@ -478,6 +486,17 @@ static action*** parse_params(char **argv)
|
|||||||
ap->subst_count[i] = count_subst(ap->exec_argv[i]);
|
ap->subst_count[i] = count_subst(ap->exec_argv[i]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ENABLE_FEATURE_FIND_USER
|
||||||
|
else if (strcmp(arg, "-user") == 0) {
|
||||||
|
action_user *ap;
|
||||||
|
if (!*++argv)
|
||||||
|
bb_error_msg_and_die(bb_msg_requires_arg, arg);
|
||||||
|
ap = ALLOC_ACTION(user);
|
||||||
|
ap->uid = bb_strtou(arg1, NULL, 10);
|
||||||
|
if (errno)
|
||||||
|
ap->uid = xuname2uid(arg1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#if ENABLE_DESKTOP
|
#if ENABLE_DESKTOP
|
||||||
else if (LONE_CHAR(arg, '(')) {
|
else if (LONE_CHAR(arg, '(')) {
|
||||||
action_paren *ap;
|
action_paren *ap;
|
||||||
|
Loading…
Reference in New Issue
Block a user