como montar um intervalo de unidades no bash?

6

Eu uso algo assim para desmontar um intervalo de unidades:

umount /dev/sd[c-k]2

Existe alguma maneira de usar a mesma coisa com o mount? algo assim:

mount /dev/sd[c-k]2 /[c2-k2]
    
por Persian 07.09.2014 / 18:30

2 respostas

10

Globbing (que é o que você está fazendo com sua correspondência de caractere curinga) expandirá a linha de comando atual.

Por exemplo:

ls [abc]1

é expandido para:

ls a1 b1 c1

Globbing só funciona onde o comando permite vários argumentos. Enquanto umount /dev/sdc2 /dev/sdd2 funciona, não há como expressar a mesma coisa para mount .

Então você precisa fazer um loop:

for m in $(basename /[c-k]2)
do
  mount /dev/sd${m} /${m}
done
    
por 07.09.2014 / 18:39
3

Uma solução alternativa usando xargs :

echo -n {c..k} |
    xargs -d' ' -I{}  echo mount /dev/sd{}2 /{}2
    
por 07.09.2014 / 20:29