Unix魔术,从目录树中删除所有.pyc文件吗?


11

是否有一种从目录树中删除所有.pyc文件的快速方法?

Answers:


28

如果您找到了GNU,那么您可能想要

find <directory name> -name '*.pyc' -delete

如果您需要便携式的东西,那么最好选择

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

如果速度很重要,并且您有GNU查找和GNU xargs,那么

find <directory name> -name '*.pyc' -print0|xargs -0 -p <some number greater than 1> rm

但是,由于您将主要在等待I / O,因此这不太可能使您获得很大的速度。


很好,谢谢。这是我永远忘记的xargs
interstar

2
以防万一我的文件名中带有空格,我已经习惯于始终使用-print0和“ xargs -0”。
Paul Tomblin,2009年

您是完全正确的,本来应该想到的。
慈安

4
您也可以直接使用'-delete'代替'-print0 | xargs -0 rm'。但这是事实,并非在所有版本的“查找”中都存在此选项。
rolaf

6

使用命令查找:

find /path/to/start -name '*.pyc' -exec rm -f {} \;

太慢了 使用xargs的速度更快,或者如果您的find版本支持它,\;请将末尾的“ +” 更改为“ ”。
暂停,直到另行通知。

1
这可能会稍慢一些-它对每个文件运行一次“ rm”,而不是对其进行批处理-但这是最可移植的方式。OP没有说出他正在使用哪种类型的Unix,而Solaris发现仍然没有-print0功能。
肯斯特

1
+ 1,OP表示unix不是linux,这是最好的便携式解决方案。
theotherre

我认为此解决方案是唯一允许删除大量文件的解决方案,如果我没有错,使用xargs可能会导致进入命令行的时间过长而出错。+1,这也是我多年以来的选择。
drAlberT

如果使用makefile生成项目,则可能需要将其添加到目标“ clean”中。
汤姆·牛顿

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.