【问题标题】:BASH; using find and -exec to remove .pyc files重击;使用 find 和 -exec 删除 .pyc 文件
【发布时间】:2017-07-06 17:12:29
【问题描述】:

在 Ubuntu 16.04.2 LTS 中使用命令行。我接近 Zed Shaw 的 LPTHW 的结尾,在 ex46.py 的视频中,他练习了以下 bash 命令来查找和删除所有 .pyc 字节代码文件:

find . -name "*.pyc" -exec rm {}

在视频中,这成功删除了 Zed Shaw 的所有 .pyc 文件。但是,在输入完全相同的命令后,我收到以下错误:

find: missing argument to `-exec'

我知道有很多方法可以删除 .pyc 文件,但是,由于我正在关注 Zed Shaw,所以我想知道如何使用 find 和 -exec 来执行此操作。我究竟做错了什么?

【问题讨论】:

    标签: bash python-2.7 ubuntu pyc


    【解决方案1】:

    你需要用\;终止-exec命令

    find . -name "*.pyc" -exec rm {} \;
    

    查看手册页中的find -exec

    正如Gordon Davisson 在 cmets 中所述,使用+ 终止命令可能更有效,因为rm 的调用次数更少:

    find . -name "*.pyc" -exec rm {} +
    

    【讨论】:

    • 您也可以使用-exec rm {} +批量删除它们,而不是为每个文件单独运行rm
    • 我认为 \ 只是一个换行符;我什至没有看到分号。
    【解决方案2】:

    您可以利用-delete 而不是-exec rm,因为前者不会为每个要删除的文件实例生成新进程。您也可以加入-type f 选项以仅对文件应用该操作。

    find . -type f -name "*.pyc" -delete
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-25
      • 2014-01-18
      • 2013-08-20
      • 2015-05-13
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      相关资源
      最近更新 更多