如何删除.txt
多个目录中存在的所有文件
Dir1 >
Dir11/123.txt
Dir12/456.txt
Dir13/test.txt
Dir14/manifest.txt
在我的示例中,我想从Dir1
.
我知道 linux 命令rm
,但我不知道如何使它适用于我的情况。
PS:我正在使用ubuntu。
递归地做你想做的事,find
是这种情况下最常用的工具。结合-delete
开关,您可以使用单个命令来执行此操作(无需像此线程中的其他答案一样使用-exec
(和分叉) ):find
find Dir1 -type f -name "*.txt" -delete
如果你使用bash4,你也可以这样做:
( shopt -s globstar; rm Dir1/**/*.txt )
我们不会进入子目录,所以不需要使用 find;一切都在同一水平。我想这就是你要找的:rm */*.txt
在运行此之前,您可以尝试echo */*.txt
查看是否要删除正确的文件。
如果要搜索子文件夹的子文件夹等,使用 find 会很有用。
当前文件夹中没有 Dir1 所以不要这样做find Dir1 ...
。如果您从上面的提示运行查找,这将起作用:
find . -type f -name "*.txt" -delete