有人可以详细说明以下命令它是如何工作的?
distclean: mrproper
@find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -size 0 \
-o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
-type f -print | xargs rm -f
答案 0 :(得分:1)
发出$make distclean
时
find命令将使用提到的扩展名搜索$(srctree)中的文件。
@find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -size 0 \
-o -name '*%' -o -name '.*.cmd' -o -name 'core' \)
然后使用-print
选项使用-type f
将文件类型作为常规文件获取每个文件的绝对路径。
-type f -print
查找结果的结果将被重定向到rm
命令以删除该文件。在将find
命令结果重定向到rm
命令时,您需要逐个传递文件名(这不是rm -r dirname)。所以xargs用于从stdin读取并构建命令。
关于xargs的一些有用的链接
http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/
Understanding the UNIX command xargs
http://linux.101hacks.com/linux-commands/xargs-command-examples/
查找命令的一些链接
http://www.tutorialized.com/tutorial/10-examples-of-using-find-command-in-Linux/67264
http://www.thegeekstuff.com/2009/03/15-practical-linux-find-command-examples/
http://www.thegeekstuff.com/2009/06/15-practical-unix-linux-find-command-examples-part-2/