曾经尝试用unix shell发现删除文件吗?使用-delete选项

问题描述 投票:8回答:2

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

你有没有想过在Unix中从命令行/终端做一堆删除?也许你使用了类似的结构

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

寻找一个优雅的方法来回答这个问题。

shell unix find command
2个回答
21
投票

以下是使用-delete选项的方法!

使用find命令选项-delete

find . -name '*.pyc' -delete

当然,如果没有-delete,请尝试干运行,看看你是否要删除你想要的东西!那些电脑确实运行得那么快! ;-)


6
投票

+1主动并自己找到问题的解决方案。一些相当小的笔记:

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

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

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

这个版本为qazxsw poi的单个调用添加了尽可能多的参数,从而减少了对qazxsw poi的调用总数。它的工作原理与rm中的默认行为非常相似。

© www.soinside.com 2019 - 2024. All rights reserved.