9

这在帖子中出现了很多次,所以我提到它是为了感谢 stackoverflow 上所有乐于助人的人。

你有没有想过在 Unix 的命令行/终端上做一堆删除操作?也许您使用了类似的构造

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

寻找一个优雅的方式来做到这一点的答案。

4

2 回答 2

22

这是使用该-delete选项的方法!

使用 find 命令选项-delete

find . -name '*.pyc' -delete

当然,请尝试不带 , 的试运行-delete,看看您是否要删除您想要的内容!!!那些电脑跑得真快!;-)

于 2012-06-06T22:32:41.913 回答
7

+1 采取主动并自己找到解决问题的方法。几个相当小的注释:

我建议-type f您在要删除文件时养成使用标志的习惯。这仅限find于实际上是文件的文件(即不是目录或链接)。否则您可能会无意中删除一个目录,这可能不是您想要做的。(也就是说,除非您有一个名为“something.pyc”的目录,否则对于您的示例命令来说这不是问题。这通常只是一个好习惯。)

另外,只是为了让您知道,如果您决定使用该-exec rm..版本,如果您这样做,它会运行得更快:

find . -type f -name '*.pyc' -exec rm {} \+

此版本尽可能多地向单个调用添加参数rm,从而减少对rm. 它的工作原理非常类似于xargs.

于 2012-06-06T23:07:57.140 回答