【问题标题】:remove files that are in find result删除查找结果中的文件
【发布时间】:2021-01-26 20:50:30
【问题描述】:

我想删除所有具有“.json”扩展名的文件。所以我跑了

find . -name "*.json"

这会产生一些文件

x.json
y.json
z.json

然后我为每个文件执行rm,但是当您有很多文件时,这是一项非常乏味的任务。

有没有办法将rmfind 结果混合在一起

【问题讨论】:

    标签: linux find rm


    【解决方案1】:

    如果使用 GNU find,那就太简单了:

    find directory/ -name "*.json" -delete
    

    【讨论】:

      【解决方案2】:

      您可以使用xargs,它将找到的文件提供给另一个命令。

      -exec 的优点是不会为每个文件创建一个新进程:

      find . -name "*.json" | xargs rm
      

      【讨论】:

        【解决方案3】:

        您可以将-exec 选项与find 一起使用。

        find . -name '*.json' -exec rm -f {} \;
        

        【讨论】:

        • 我会使用-exec rm -f {} +,它会一次将多个文件传递给rm,有点像使用xargs。这样更有效率。
        猜你喜欢
        • 2018-10-27
        • 2021-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多