Eu posso adivinhar o problema: usando uma regra do udev, seu script é executado antes que a camada gvfs veja o dispositivo, e muito menos tenha a chance de montá-lo automaticamente.
A idéia do udev é que ele primeiro recebe "uevents" do kernel, os processa de acordo com as regras e os retransmite para todos os outros programas. (Embora outros aplicativos possam também receberem esses eventos diretamente, isso raramente é feito, já que os processados têm muito mais informações e têm garantia de serem enviados apenas quando o dispositivo está pronto para uso .)
Em outras palavras, o gvfs nem se informa sobre o dispositivo até que após seu script seja executado.
E se você quiser fazer alguma coisa após o gvfs montá-lo, você terá que reagir a eventos que o gvfs envia. Em vez de uma regra do udev, você precisará de um script que use o D-Bus e ouça sinais no barramento da sessão. Comece com dbus-monitor --session
ou busctl monitor --user
para descobrir o que é enviado e, em seguida, use os módulos D-Bus do Perl ou do Python para lidar com isso.
Como observação, em vez de for var in $(ls -d /some/path*)
, você pode obter o mesmo resultado usando apenas for var in /some/path*
. Não é o ls que expande curingas - é o próprio shell.