删除许多目录的文件 - Linux

时间:2013-08-25 15:42:18

标签: linux file rm

如何删除多个目录中的所有.txt个文件

Dir1 >
  Dir11/123.txt
  Dir12/456.txt
  Dir13/test.txt
  Dir14/manifest.txt

在我的示例中,我想从Dir1运行删除命令。

我知道linux命令rm,但我不知道如何才能使这个工作适用于我的情况。

PS:我正在使用ubuntu。

2 个答案:

答案 0 :(得分:3)

要以递归方式执行您想要的操作,find是此案例中使用最多的工具。结合-delete开关,您可以使用单个命令执行此操作(无需在-exec中使用find(和forks),就像此线程中的其他答案一样):

find Dir1 -type f -name "*.txt" -delete

如果你使用,你也可以这样做:

( shopt -s globstar; rm Dir1/**/*.txt )

答案 1 :(得分:1)

我们不会进入子目录,所以不需要使用find;一切都在同一水平。我想这就是你要找的东西:rm */*.txt

在您运行此操作之前,您可以尝试echo */*.txt查看是否要删除正确的文件。

如果要搜索子文件夹等的子文件夹,使用find会很有用。

当前文件夹中没有Dir1,因此请勿执行find Dir1 ...。如果您从上面的提示中运行查找,则可以使用:

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