pwd para retornar o caminho atual com “/” no final

2

Eu quero que pwd retorne /path/to/dir no formato /path/to/dir/ com o " / " no final. Alguma idéia de como eu posso conseguir isso?

    
por E. l4d3 05.10.2017 / 14:42

1 resposta

4

Com bash4.4+ , você pode redefinir pwd como:

pwd() {
  local -
  set -o pipefail
  builtin pwd "$@" | sed '${/\/$/!s|$|/|;}'
}

Isso é adicionar um / à última linha do diretório de trabalho atual se ele já não estiver lá (como depois de cd / ) e retornar o status de saída original graças à opção pipefail (ativada para esse funciona apenas com local - ).

(com zsh , substitua local -; set -o pipefail por set -o localoptions -o pipefail ).

POSIXly, você poderia fazer:

pwd() (
  pwd=$(command pwd "$@" && echo .) || exit
  pwd=${pwd%??}
  pwd=${pwd%/}/
  printf '%s\n' "$pwd"
)
    
por 05.10.2017 / 14:54

Tags