根据匹配条件执行iproute2操作

使用iproute2时有没有办法使用通配符或其他匹配条件? 我有多个遵循命名约定的通道接口。 像ip tunnel del blah- * (这给出了错误: ioctl:没有这样的设备 )就好了,而不必诉诸创build自定义脚本。

语法很清楚,从我可以告诉:

Usage: ip tunnel { add | change | del | show | prl } [ NAME ] [ mode { ipip | gre | sit | isatap } ] [ remote ADDR ] [ local ADDR ] [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ] [ prl-default ADDR ] [ prl-nodefault ADDR ] [ prl-delete ADDR ] [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ] Where: NAME := STRING ADDR := { IP_ADDRESS | any } TOS := { NUMBER | inherit } TTL := { 1..255 | inherit } KEY := { DOTTED_QUAD | NUMBER } 

NAME必须是STRING,因此不能是通配符模式。 我知道你希望避免这种情况,但是你最好的办法可能是编写一个类似这样的shell包装:

 #! /bin/bash PATTERN="$1" for t in $(ip tunnel show | awk -F: '{print $1}' | grep -E "$PATTERN"); do ip tunnel del $t done 

然后就像这样调用你的脚本: deltunnels.sh "^blah-*"

我认为这应该工作。