¿Es posible tener espacios de escape bash en pwd?

Me gustaría copyr el directory actual al portapapeles, algo así como: pwd | pbcopy pwd | pbcopy . Sin embargo, pwd no escapa al espacio, por lo que algo en "Application Support", por ejemplo, no se copy correctamente. No parece recordar que este sea siempre el caso, así que podría haber tomado algo. Usando iTerm2.

¿Hay configuration de bash para escaping de todo? tener problemas para search, demasiadas preguntas / temas sobre Spaces.app o esc .

  • ¿Es posible eliminar temporalmente el margen de la window de iTerm2?
  • Traducir script de shell que no funciona dentro de Automator
  • ¿Cómo instalar GNU-sed?
  • Intentando instalar un .sh que automatice la installation de .pkg
  • Mi ruta de acceso a la terminal en macOS SIerra está en mal estado
  • Launchd script para montar el volumen en el arranque
  • Corriente:

     $ pwd /Library/Application Support/Google Earth/ 

    Privilegiado:

     $ pwd /Library/Application\ Support/Google\ Earth/ 

    Publicaciones ya vistas: copyr la ruta del directory actual al portapapeles y ¿Cómo hacer un cd a un directory con un nombre que contenga espacios en bash? , que no abordan esto. Habría hecho un comentario en el primero, pero no tengo los privilegios.

  • ¿Se puede optimizar Apple Mail para que funcione bien cuando tengo 30k de posts en mis bandejas de input?
  • Recomendaciones para un buen Bandwith Tracker en OS X
  • ¿Por qué "Safari Web Content quit unexpectedly" ocurre a menudo en macOS Sierra?
  • CVE-2016-4631 y dispositivos antiguos
  • Exportar elementos de iCloud de Keychain a CSV
  • ¿Cómo puedo mantener las aplicaciones "siempre en la cima" en Lion?
  • 3 Solutions collect form web for “¿Es posible tener espacios de escape bash en pwd?”

    Este command escapingá espacios correctamente:

     printf "%q\n" "$(pwd)" | pbcopy 

    Puedes alias usando algo con historial como cwd si no te importa networkingefinir una cwd diferente

     alias cwd='printf "%q\n" "$(pwd)" | pbcopy' 

    Suelta la tubería para hacer una copy si quieres que funcione más como pwd y simplemente imprime la ruta de escape.

     pwd | sed 's/ /\\ /g' 

    Pero no estoy seguro de que esto finalmente solucione tu problema. pbcopy está copyndo exactamente lo que recibe en stdin.

    No existe una forma incorporada de hacer que la salida de pwd escape de las routes de files, ya que esto generalmente no es útil.

    No tiene sentido que pwd o pbcopy agreguen barras invertidas a lo que se copy. Si desea copyr la ruta en un file de text o publicación web, no le gustaría insert una barra invertida en ella.

    Probablemente lo que quiere hacer es crear un alias separado, como qwd , para imprimir la forma citada del directory actual, o simplemente escaping de la salida de pbpaste , que es tan fácil como ponerlo entre comillas dobles:

     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 count que no se trata solo de espacios que necesitan escapingse. Las barras oblicuas hacia delante y hacia atrás, la estrella, el signo de interrogación, el signo de ampersand, el punto y coma y otros caracteres también necesitan escapingse. Lo más seguro es utilizar comillas dobles como en el ejemplo, que funcionarán incluso si la ruta incluye comillas dobles.

    Si quieres ser perverso al respecto, puedes hacer que AppleScript cotice el directory actual por ti:

     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, casi siempre estoy de acuerdo con Glenn, excepto que, como arriba, alias la forma citada para qwd para no interferir con la pwd normal:

     alias qwd='printf "%q\n" "$(pwd)"' 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).