X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=find.c;h=40a508f051d6b1892985fff5d92a43dc871eebba;hb=8ad12e32c89c0b9e8c6da35e23398d4a97f7f601;hp=ab9ebf43476350fc82d7d5a55a79d964feb710c3;hpb=6b6b3f6ef2f44898a8bddfaae93cc4ef3aa79661;p=oweals%2Fbusybox.git diff --git a/find.c b/find.c index ab9ebf434..40a508f05 100644 --- a/find.c +++ b/find.c @@ -32,9 +32,18 @@ static char* pattern=NULL; static char* directory="."; static int dereferenceFlag=FALSE; -static const char find_usage[] = "find [path...] [expression]\n" -"default path is the current directory; default expression is -print\n" -"expression may consist of:\n"; +static const char find_usage[] = "find [PATH...] [EXPRESSION]\n\n" +"Search for files in a directory hierarchy. The default PATH is\n" +"the current directory; default EXPRESSION is '-print'\n\n" +"\nEXPRESSION may consist of:\n" +"\t-follow\n\t\tDereference symbolic links.\n" +"\t-name PATTERN\n\t\tFile name (with leading directories removed) matches PATTERN.\n" +"\t-print\n\t\tprint the full file name followed by a newline to stdout.\n\n" +#if defined BB_REGEXP +"This version of find matches full regular expresions.\n"; +#else +"This version of find matches strings (not regular expresions).\n"; +#endif @@ -42,8 +51,15 @@ static int fileAction(const char *fileName, struct stat* statbuf) { if (pattern==NULL) fprintf(stdout, "%s\n", fileName); - else if (find_match((char*)fileName, pattern, TRUE) == TRUE) - fprintf(stdout, "%s\n", fileName); + else { + char* tmp = strrchr( fileName, '/'); + if (tmp == NULL) + tmp = (char*)fileName; + else + tmp++; + if (check_wildcard_match(tmp, pattern) == TRUE) + fprintf(stdout, "%s\n", fileName); + } return( TRUE); }