我猜你在输入时会收到一条错误消息
lvremove volgroup/lv-1-*
因为 shell 会尝试volgroup/lv-1-*
在当前目录中扩展名称,也就是说,如果您从/tmp
(例如)运行该命令,shell 将尝试在子目录中查找/tmp/volgroup
名称以 . 开头的现有文件lv-1-
。由于 shell 找不到这样的文件,因此它会启动lvremove
带有参数的命令volgroup/lv-1-*
......我猜你的 LV 都没有被命名lv-1-*
。
请记住,文件名扩展是由外壳程序执行的,而不是由命令(在您的情况下为 lvremove)。星号元字符对于大多数命令(如 lvremove)没有意义,并且与任何其他字符一样处理。
以下示例将执行您正在尝试的操作:
lvremove /dev/volgroup/lv-1-*
或者
cd /etc
lvremove volgroup/lv-1-*
在这两种情况下,shell 都将扩展为所有匹配的文件名 --- 从上面的示例中,在 shell 扩展之后,我建议的命令行实际上将运行为:
lvremove /dev/volgroup/lv-1-8a /dev/volgroup/lv-1-846a /dev/volgroup/lv-1-5a
或者
cd /etc
lvremove volgroup/lv-1-8a volgroup/lv-1-846a volgroup/lv-1-5a
当参数数量很大时,可能会达到命令行大小的限制。在这种情况下,该find
命令很有用:
find /dev/volgroup -type l -exec lvremove -f '{}' ';'
最好的祝福。