¿Al command Abrir no le gustan los caracteres no escapados incluso entre comillas?

¿Soy yo o el command open solo acepta caracteres escapados en los parameters?

Intentó open "~/Library/Messages/Attachments/87/07/079C263B-0586-48C6-B721-3C6AABAC76DF/Messages Image(1020754653).jpeg"

  • Ejecutar script simple
  • Salida de tubería de grep a una variable
  • applescript (osascript) para cambiar el perfil de Terminal.app
  • Hacer accesos directos a los directorys a través de la terminal
  • La aplicación Ssh en iPad ejecuta bash script
  • Terminal: ruta a la unidad de networking en Applescript
  • que devuelve The file /Users/Kyro/Library/Messages/~/Library/Messages/Attachments/87/07/079C263B-0586-48C6-B721-3C6AABAC76DF/Messages Image(1020754653).jpeg does not exist.

    Cuando realmente se open /Users/Kyro/Library/Messages/Attachments/87/07/079C263B-0586-48C6-B721-3C6AABAC76DF/Messages\ Image\(1020754653\).jpeg funciona bastante bien.

    Editar: Ejecutando Mavericks aquí.

  • Finder trata los enlaces simbólicos de forma diferente a la terminal MacBook Pro Retina OS X 10.9.4
  • establecer la extensión de file personalizado para abrir con el progtwig especificado
  • Establecer el resultado del command a la variable en la ejecución de la terminal
  • Abrir enlaces en la aplicación Mac Chrome en modo incógnito
  • Forzar el relanzamiento del buscador desde la terminal al background
  • Escribir en NSUserDictionaryReplacementItems con valores pnetworkingeterminados
  • 3 Solutions collect form web for “¿Al command Abrir no le gustan los caracteres no escapados incluso entre comillas?”

    No está open , es el hecho de que ~ solo funciona cuando no está entre comillas. ~ no es realmente parte de una ruta de file estándar, es un metacaracter de shell que reemplaza el shell en contexts en los que parece el comienzo de una ruta (y las comillas lo suprimen). Aquí hay unos ejemplos:

     $ echo ~ /Users/gordon $ echo "~" ~ $ ls ~/Library Accounts Fonts Disabled Printers [...] $ ls "~/Library" ls: ~/Library: No such file or directory 

    Tenga en count el último command de arriba: como ~ está entre comillas dobles, no se reemplaza por la ruta de acceso a mi carpeta de inicio, y luego ls solo trata como un nombre de file normal (que pasa por no existir). Lo mismo está sucediendo en tu command open .

    Como el file que está intentando abrir tiene otros metacaracteres del shell en su nombre, lo que debe hacer es citar parcialmente la ruta: deje el ~ fuera de las comillas, pero asegúrese de que la parte del nombre del file esté dentro de comillas. Algo como esto:

     open ~/"Library/Messages/Attachments/87/07/079C263B-0586-48C6-B721-3C6AABAC76DF/Messages Image(1020754653).jpeg" 

    Bueno, no leí correctamente el resultado del error.

    open es un infierno de a * .

    Agrega el directory de trabajo antes del command cuando usa comillas.

    /Users/Kyro/Library/Messages/~/Library/Messages/ no tiene ningún sentido.

    Como apéndice a la respuesta de @Gordon Davidsons:

    De la página Bash Man :

    EXPANSIÓN

    La expansión se realiza en la línea de command después de haber sido dividida en palabras. Hay siete types de expansión realizadas: expansión de llaves, expansión de tilde, expansión de parameters y variables, sustitución de commands, expansión aritmética, split de palabras y expansión de nombres de routes.

    Tilde Expansion

    Si una palabra comienza con un carácter de tilde sin comillas (`~ '), todos los caracteres que preceden a la primera barra inclinada sin comillas (o todos los caracteres, si no hay una barra inclinada sin comillas) se consideran prefijo de tilde. Si ninguno de los caracteres en el prefijo de tilde se cita, los caracteres en el prefijo de tilde que siguen a la tilde se tratan como un posible nombre de inicio de session. Si este nombre de usuario es la cadena nula, la tilde se reemplaza con el valor del parámetro de shell HOME. Si HOME está desactivado, en su lugar se sustituye el directory de inicio del usuario que ejecuta el shell. De lo contrario, el prefijo de tilde se reemplaza con el directory de inicio asociado con el nombre de inicio de session especificado.

    Si el prefijo de tilde es un ~+', the value of the shell variable PWD replaces the tilde-prefix. If the tilde-prefix is a ~+', the value of the shell variable PWD replaces the tilde-prefix. If the tilde-prefix is a ~ – ', el valor de la variable de shell OLDPWD, si se establece, se sustituye. Si los caracteres que siguen a la tilde en el prefijo tilde consisten en un número N, opcionalmente prefijado por un +' or a -', el prefijo tilde se reemplaza por el elemento correspondiente de la stack de directory, tal como lo mostraría el dirs incorporado invocado con el prefijo tilde como argumento. Si los caracteres que siguen a la tilde en el prefijo de tilde consisten en un número sin un guion +' or -', se asume `+ '.

    Si el nombre de inicio de session no es válido o la expansión de tilde falla, la palabra no cambia.

    Cada asignación de variable se comtesting para prefijos de tilde sin comillas inmediatamente después de a: o el primero =. En estos casos, la expansión de tilde también se realiza. En consecuencia, se pueden usar nombres de file con tildes en asignaciones a PATH, MAILPATH y CDPATH, y el shell asigna el valor expandido.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).