在/home/simple/0004 目录下查找后缀名为html的命令,但不对/home/simple/0004 目录下面的子目录simple进行查找
find /home/simple/0004 -path "./simple" -prune -o -name "*.html" -ls
find /home/simple/0004 -path "./simple" -prune -o -name "*.html" |xargs ls
有些不明白的地方是 -prune -o这两个参数必须相联出现,省去-o参数上面的命令将无结果返回
暂不知道 -o 参数的作用,有知道的朋友请指教!
update
URL:http:
//
bbs.chinaunix.net/viewthread.php?tid=1052959&pid=7964129&page=1&extra=page%3D1#pid7964129
-
o表示
'
or
'
,用来连接test和action。

find
/
home
/
simple
/
0004
-
path
"
/home/simple/0004/simple
"
-
prune
-
o
-
name
"
*.css
"
-
print

用类似shell的语法表示的话就相当于:

for
everyentryunder
/
home
/
simple
/
0004
((
-
path
"
/home/simple/0004/simple
"
)
&&
(
-
prune))
||
((
-
name
"
*.css
"
)
&&
(
-
print))

对于
||
,如果前面的表达式为
true
,后面的表达式就不用执行了
对于
&&
则相反
-----------------------------------------------
man find 上的一个例子
find / /! -name "*.c" -print
Print out a list of all the files whose names do not end in .c.
find / -newer ttt -user wnj -print
Print out a list of all the files owned by user ``wnj'' that are
newer than the file ttt.
find / /! /( -newer ttt -user wnj /) -print
Print out a list of all the files which are not both newer than
ttt and owned by ``wnj''.
find / /( -newer ttt -or -user wnj /) -print
Print out a list of all the files that are either owned by
``wnj'' or that are newer than ttt.
find / -newerct '1 minute ago' -print
Print out a list of all the files whose inode change time is more
recent than the current time minus one minute.
find / -type f -exec echo {} /;
Use the echo(1) command to print out a list of all the files.
find -L /usr/ports/packages -type l -delete
Delete all broken symbolic links in /usr/ports/packages.
find /usr/src -name CVS -prune -o -depth +6 -print
Find files and directories that are at least seven levels deep in
the working directory /usr/src.
find /usr/src -name CVS -prune -o -mindepth 7 -print
Is not equivalent to the previous example, since -prune is not
evaluated below level seven.
find /home/simple/0004 -path "./simple" -prune -o -name "*.html" -ls
find /home/simple/0004 -path "./simple" -prune -o -name "*.html" |xargs ls
有些不明白的地方是 -prune -o这两个参数必须相联出现,省去-o参数上面的命令将无结果返回
暂不知道 -o 参数的作用,有知道的朋友请指教!
update














-----------------------------------------------
man find 上的一个例子
find / /! -name "*.c" -print
Print out a list of all the files whose names do not end in .c.
find / -newer ttt -user wnj -print
Print out a list of all the files owned by user ``wnj'' that are
newer than the file ttt.
find / /! /( -newer ttt -user wnj /) -print
Print out a list of all the files which are not both newer than
ttt and owned by ``wnj''.
find / /( -newer ttt -or -user wnj /) -print
Print out a list of all the files that are either owned by
``wnj'' or that are newer than ttt.
find / -newerct '1 minute ago' -print
Print out a list of all the files whose inode change time is more
recent than the current time minus one minute.
find / -type f -exec echo {} /;
Use the echo(1) command to print out a list of all the files.
find -L /usr/ports/packages -type l -delete
Delete all broken symbolic links in /usr/ports/packages.
find /usr/src -name CVS -prune -o -depth +6 -print
Find files and directories that are at least seven levels deep in
the working directory /usr/src.
find /usr/src -name CVS -prune -o -mindepth 7 -print
Is not equivalent to the previous example, since -prune is not
evaluated below level seven.