Para o seu diretório pessoal, use dir="${PWD/#$HOME/~}"
.
Para remover apenas /home/
, como sugere Glenn, use também dir="${dir/#\/home\//~}"
.
A conversão de homedirs de outros usuários é muito mais complicada, já que você deve listar todos usuários todas as vezes.
-
Você não pode nem parar no primeiro jogo, já que as poucas primeiras contas têm um homedir de
/
, que sempre corresponderá. Em vez disso, é necessário verificar o prefixo mais longo , o que não é simples. -
Costumo trabalhar com servidores configurados para ler contas de usuários do LDAP, o que leva um segundo inteiro para listar todas as contas; Enquanto isso, o Active Directory nem permitiria ver a lista inteira.