No hay una forma integrada de hacer que pwd
produzca rutas de archivos de escape, ya que esto generalmente no es útil.
No tiene sentido que pwd
o pbcopy
esté agregando barras invertidas a lo que se copia. Si desea copiar la ruta en un archivo de texto o publicación web, no querrá insertar una barra diagonal inversa en él.
Probablemente, lo que quieres hacer es crear un alias separado, como qwd
, para imprimir la forma citada del directorio actual, o simplemente escapar de la salida de pbpaste
, que es tan fácil como ponerlo en doble citas:
bash-3.2$ pwd
/Users/user
bash-3.2$ cd test\ dir/untitled\ \"folder/
bash-3.2$ pwd
/Users/user/test dir/untitled "folder
bash-3.2$ pwd | pbcopy
bash-3.2$ echo "'pbpaste'"
/Users/user/test dir/untitled "folder
bash-3.2$ cd
bash-3.2$ pwd
/Users/user
bash-3.2$ cd 'pbpaste'
bash: cd: /Users/user/test: No such file or directory
bash-3.2$ cd "'pbpaste'"
bash-3.2$ pwd
/Users/user/test dir/untitled "folder
Tenga en cuenta que no son solo los espacios los que necesitan escapar. Las barras hacia adelante y hacia atrás, la estrella, el signo de interrogación, el símbolo comercial, el punto y coma y otros caracteres deben escapar también. Lo más seguro es usar comillas dobles como en el ejemplo, que funcionará incluso si la ruta incluye comillas dobles.
Si quiere ser perverso al respecto, podría hacer que AppleScript le indique el directorio actual:
bash-3.2$ alias qwd="osascript -e 'return quoted form of POSIX path of (POSIX file \"./\" as alias)'"
bash-3.2$ qwd
'/Users/user/test dir/untitled "folder'
De lo contrario, estoy más de acuerdo con Glenn, excepto que, como se mencionó anteriormente, alias la forma citada como qwd
para no interferir con el pwd
normal:
alias qwd='printf "%q\n" "$(pwd)"'