1 votos

Abra el archivo .webloc con dos puntos en su nombre utilizando "open".

Supongamos que tengo un fichero ~/Desktop/foo:bar.webloc .

(a) Si hago doble clic, se abre una página web determinada. Genial.

(b) Si en el Terminal ejecuto open ~/Desktop/foo:bar.webloc abre la página web. ¡Increíble!

(c) Si en el Terminal ejecuto cd Desktop y luego open foo:bar.webloc Me saludan con

% open foo:bar.webloc 
foo:bar.webloc?
[0] cancel
[1] Open the file foo:bar.webloc
[2] Open the URL  foo:bar.webloc

Which did you mean?

Supongo que open piensa que el nombre del archivo puede ser una URL. ¿Hay alguna forma de forzar open para abrir el archivo por defecto si el archivo existe, incluso si el nombre del archivo coincide con un patrón que podría ser una URL? Algo así como lo contrario de open -u ? ¿Debo evitar los dos puntos en los nombres de archivo?

Esto surgió porque Firefox creó un nombre de archivo que contenía dos puntos cuando lo arrastré desde la barra de URL al escritorio, y luego intenté abrirlo desde la Terminal. Quizá otra pregunta sea: ¿hay alguna forma de obtener automáticamente nombres de archivo sin dos puntos al crear archivos webloc? (Si quieres hacer la prueba, puedes usar la URL https://github.com/sagemath/trac-to-github/blob/master/docs/Migration-Trac-to-Github.md . Safari y Chrome producen nombres de archivo sin dos puntos, pero no Firefox).

Edición: basándose en el caso (b), una solución parcial es utilizar open ./foo:bar.webloc .

5voto

Barmar Puntos 128

Se puede hacer referencia al directorio actual utilizando el nombre de directorio . . Así que usa

open ./foo:bar.webloc

No es una URL válida, por lo que se trata como un nombre de archivo.

Esta es también una forma habitual de tratar los nombres de archivo que empiezan por - que, de lo contrario, podrían interpretarse como opciones de comando.

3voto

Douglas Puntos 10417

Supongo que open piensa que el nombre del archivo puede ser una URL.

No le falta razón.

Unix/BSD/Linux/etc. ( MacOS es un Unix certificado ) no utilizan caracteres para los nombres de archivo. En su lugar, es una matriz de bytes. A excepción de algunos caracteres como el Null (0x00) y la barra oblicua (0x2f -). / ) casi todo lo demás es juego limpio incluyendo dos puntos. En resumen, puede poner dos puntos en el nombre del archivo y que sea válido.

Véase este excelente artículo sobre Unix y Linux titulado Comprensión de la codificación de nombres de archivo Unix para más detalles.

¿Hay alguna forma de forzar a open a abrir el archivo por defecto si el archivo existe,

Desgraciadamente, no. Su sistema operativo (MacOS en este caso) no puede distinguir entre un nombre de archivo con dos puntos y una URL con dos puntos.

¿Por qué?

El problema es que, según la especificación de URL ( RFC-1738 ), §2.1, Las partes principales de las URL definir cómo debe ser una URL

Una URL contiene el nombre del esquema utilizado () seguido de dos puntos y luego una cadena (el ) cuya interpretación depende del esquema.

Énfasis mío

si el nombre del archivo coincide con un patrón que podría ser una URL?

Un archivo es un archivo; eso es fácil. En cambio, una URL puede ser muchas cosas, incluyendo un archivo. Véase RFC-1738 §3.10 Expedientes :

El esquema de URL de archivos se utiliza para designar los archivos accesibles en un ordenador host concreto. Este esquema, a diferencia de la mayoría de los demás esquemas de URL, no designa un recurso accesible universalmente en Internet.

Una URL de archivo puede tener la forma de (VAX/VMS):

DISK$USER:[SHARE]FOO.BAR
         ꜛ
          Note the colon!

Es un archivo perfectamente válido y, en este caso, sería remoto. Sin embargo, debido a que Unix permite que todos y cada uno de esos caracteres existan en un nombre de archivo, la pregunta (para el SO) es "¿cómo manejarlo?" ¿Abrir como URL o como archivo? Por eso aparece la pregunta.

TL;DR

No se puede forzar open para abrir un objetivo como un archivo cuando el argumento puede ser una de muchas cosas. En este caso, un archivo con dos puntos puede ser tanto una URL como un archivo; de ahí el mensaje que aparece.

Esto se debe a los "caracteres permitidos" (matrices de bytes, en realidad) que componen un nombre de archivo en Unix, así como a la confusión creada tras la definición de una URL.

En cuanto a una "marcha atrás" de open -u Bueno, eso simplemente no existe como argumento para el open mando.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X