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