【问题标题】:Understanding the command : Make distclean理解命令:make distclean
【发布时间】:2018-07-03 20:17:53
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案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 用于从标准输入读取并构建命令。

    一些关于 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/

    【讨论】:

    • 感谢非常好的解释。为什么 @ 在 find 命令之前添加。
    • 感谢各种链接。它们真的很有用。
    • 在查找之前删除@符号。你会看到区别。 :)
    • 是的。为避免不必要地打印命令,@ 将隐藏它。
    • mrproper 是干什么用的?
    猜你喜欢
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 2015-04-04
    • 1970-01-01
    • 2016-01-21
    • 2014-02-14
    相关资源
    最近更新 更多