理解命令:制造distclean

时间:2014-01-21 07:25:11

标签: makefile linux-device-driver embedded-linux gnu-make

有人可以详细说明以下命令它是如何工作的?

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

1 个答案:

答案 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/