¿Por qué las herramientas GNU utilizan ` y ' que no coinciden para citar errores?

¿Por qué las herramientas GNU utilizan ` y ' que no coinciden para citar errores?

Las herramientas GNU a menudo generan mensajes de error y advertencia con partes de la línea (por ejemplo, nombres de archivos, errores de sintaxis, fechas no válidas, etc.) entre comillas que no coinciden: ` y '

por ejemplo, de GNU coreutilsPreguntas más frecuentes:

$ date -d "2006-04-02 02:30:00"
date: invalid date `2006-04-02 02:30:00'

y

rm: cannot remove `backup.tar': Value too large for defined data

¿Por qué hacen esto? ¿Tiene algún beneficio? ¿Cuál es la historia detrás de esto?

Respuesta1

Con las fuentes X antiguas, '..' parecía simétrico como '..'

También dado `..' látex genera comillas simples izquierda y derecha correctas como '..'

Entonces '..' fue un truco y en 2012 coreutilscambiópara descascarar como citar '..'

Sin embargo, ahora no era una sintaxis de shell completa y generaría una salida corrupta si hubiera caracteres "\r", etc. incrustados, presentes. Además, de manera inconsistente, en algunos casos no se usaron comillas y, a veces, se usaron comillas Unicode '..' (que usa comillas según lo definido para la configuración regional y sirve para escapar de estos caracteres de control).

Un muy reciente (2015)parche colocarse introdujo en coreutils para hacer esto más consistente, citando todos los resultados de nombres de archivos en formato compatible con shell, que también escapa apropiadamente a los caracteres de control y permite copiar y pegar más fácilmente en otros comandos. Otros elementos del diagnóstico utilizan citas "unicode completas" como se mencionó anteriormente.

información relacionada