![如何删除多个子目录的内容](https://linux22.com/image/949020/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E5%A4%9A%E4%B8%AA%E5%AD%90%E7%9B%AE%E5%BD%95%E7%9A%84%E5%86%85%E5%AE%B9.png)
这可能不寻常,因为搜索并没有给我正确的答案。尝试简化:我有 15 个子目录,每个子目录都包含一个不同名称的 .vhd 文件。
我想从这些子目录中擦除所有 .vhd 文件,而不删除目录本身。
现在我只需 cd 进入子目录,rm .vhd 文件,然后 cd ../下一个目录,删除。我试过摆弄 rm,但无法让它正常工作。我以为 rm -rf *.vhd 会起作用,但不行。我需要编写一个 shell 脚本还是有一个命令可以完成此操作?
答案1
您可以在包含所有其他 15 个子目录的目录中运行以下命令:
rm */*.vhd
这将删除所有匹配的文件*.vhd
(所有以 结尾的文件.vhd
)在当前工作目录的任意目录中(这就是 的用途*/
)。
由于 *.vhd 文件不是目录,因此您不需要标志-r
。rm
并且如果您对文件有权限,-f
则也不需要该标志。