1

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

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

在我的示例中,我想从Dir1.

我知道 linux 命令rm,但我不知道如何使它适用于我的情况。

PS:我正在使用ubuntu。

4

2 回答 2

3

递归地做你想做的事,find是这种情况下最常用的工具。结合-delete开关,您可以使用单个命令来执行此操作(无需像此线程中的其他答案一样使用-exec(和分叉) ):find

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

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

( shopt -s globstar; rm Dir1/**/*.txt )
于 2013-08-25T15:48:17.430 回答
1

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

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

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

当前文件夹中没有 Dir1 所以不要这样做find Dir1 ...。如果您从上面的提示运行查找,这将起作用:

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

于 2013-08-25T15:47:35.537 回答