Se você estiver usando um ambiente de área de trabalho LXDE, o xdg-open abrirá file:// URLS com o programa pcmanfm . Ele remove a parte file:// da URL e chama pcmanfm com a parte restante, já que o pcmanfm suporta somente caminhos normais como argumentos, não URLs.
xdg-open não faz outras substituições, portanto, %20 não está traduzido em um espaço. Este é um bug (fique à vontade para abrir um relatório de bug para isso no Debian).
Uma correção é descrita abaixo.
Para outros ambientes de área de trabalho, os programas abertos suportam corretamente URLs file: //.
Solução alternativa : Desmarque algumas variáveis de ambiente, para que o xdg-open use o manipulador aberto genérico que suporta todas as substituições necessárias:
XDG_CURRENT_DESKTOP= DESKTOP_SESSION= xdg-open "/home/sashoalm/Has Spaces.txt"
Correção de erros: Copie o script xdg-open para / usr / local / bin (para que não seja sobrescrito, atualizando seu sistema) e adicione a linha
file="$(printf "$(echo "$file" | sed -e 's@%\([a-f0-9A-F]\{2\}\)@\x@g')")"
para o script xdg-open acima da linha de comentários # handle relative paths .
Correção de bug 2:
Ou simplesmente substitua a substituição detectDE() por:
detectDE()
{
DE=gnome
}