Supondo que você tenha uma única letra após sd
, não é necessário usar find
.
Em bash
você pode fazer
shopt -s nullglob
for dev in /dev/sd[!a]; do
echo "$dev"
done
A primeira linha é não ter saída quando não houver correspondência.
Editar
Para se estender a um número indeterminado de letras, o glob poderia ser
printf '%s\n' /dev/!(sda|*[0-9])
onde !(pattern)
significa tudo menos padrão , e os padrões excluídos são, no caso específico sda
e *[0-9]
(tudo terminando em um número).
As globs estendidas devem ser ativadas para que isso funcione (por exemplo, shopt -s extglob
).