如何删除多个子目录的内容

如何删除多个子目录的内容

这可能不寻常,因为搜索并没有给我正确的答案。尝试简化:我有 15 个子目录,每个子目录都包含一个不同名称的 .vhd 文件。

我想从这些子目录中擦除所有 .vhd 文件,而不删除目录本身。

现在我只需 cd 进入子目录,rm .vhd 文件,然后 cd ../下一个目录,删除。我试过摆弄 rm,但无法让它正常工作。我以为 rm -rf *.vhd 会起作用,但不行。我需要编写一个 shell 脚本还是有一个命令可以完成此操作?

答案1

您可以在包含所有其他 15 个子目录的目录中运行以下命令:

rm */*.vhd

这将删除所有匹配的文件*.vhd(所有以 结尾的文件.vhd在当前工作目录的任意目录中(这就是 的用途*/)。

由于 *.vhd 文件不是目录,因此您不需要标志-rrm并且如果您对文件有权限,-f则也不需要该标志。

相关内容