删除一组在不同位置包含多个“-”作为其名称一部分的文件夹

删除一组在不同位置包含多个“-”作为其名称一部分的文件夹

如何删除-名称中包含多个名称的多个文件夹?

例如:

e97bf913-5759-4fff-bdaf-2f931b53a432/
39f953c5-dab0-420e-a650-a50a30f48097/

答案1

图案

*-*-*/

匹配具有两个或多个连字符的目录。匹配*任何字符串(零个或多个字符)。

如果您只想匹配不应以连字符开头和结尾的目录名称(如您的示例中所示),您可以使用

[!-]*-*-*[!-]/

反而。匹配[!-]任何不是 ( !) 连字符的字符。

跑步

ls -d [!-]*-*-*[!-]/

首先看看这些是否是您要删除的。然后运行

rm -r [!-]*-*-*[!-]/

递归删除它们。如果您确实需要强制删除,请添加-f到命令中。

答案2

rm -r *-*-*-*-*

警告:这将删除与此方案匹配的每个文件。所以文件如下:

system-file-separated-by-minus 

也会被删除。

“*”部分代表下一个给定之前的所有内容(零个、一个或多个字符),在本例中用减号分隔。如果您知道文件的 - 前面有 8 个字符,下一个字符前面有 4 个字符,您可以说:

rm -r ????????-????-????-????-????????????

每一个 ?代表任何字符。这将删除与您的方案匹配的所有文件。但具有相同方案的文件也会被删除,但您可能不想要,因此请先检查这一点。

答案3

只需在父目录中执行此命令即可

rm -r *-*-*/

相关内容