¿Es correcto el uso de ciertos caracteres especiales, como +
, &
, '
, .
(DOT) y ,
(coma), básicamente, en los nombres de archivo.
Entiendo que puede usar -
y _
sin problemas, pero haciendo algunas investigaciones no he podido encontrar algo definitivo sobre los otros símbolos; algunos dicen que puedes, otros dicen que no puedes y otros dicen que "no se recomienda" usarlos (lo que sea que eso signifique).
filenames
unix-philosophy
Chris Klein
fuente
fuente
Respuestas:
Si.
Correcto pero no necesariamente aconsejable o conveniente.
Puede usar cualquier carácter excepto nulo y
/
dentro de un nombre de archivo en los sistemas de archivos modernos de Unix y Linux.Puede usar la puntuación ASCII . Algunas utilidades usan paradas ( punto ) y comas en los nombres de los archivos que crean.
Puede usar caracteres de control ASCII , sin embargo, esto no es aconsejable, ya que es poco probable que se muestren de manera aceptable y sean difíciles de usar.
Puede usar metacaracteres de shell , como ASCII ampersand y ASCII apostrophe. Sin embargo, esto es inconveniente y requiere que al construir comandos tenga especial cuidado en citar o escapar de dichos caracteres.
Puede usar caracteres de varios bytes usando una variedad de codificaciones. Depende del shell y / o las utilidades interpretar y mostrar correctamente los caracteres que no son ASCII. Es recomendable restringirse a una codificación popular como UTF-8 y establecer la configuración regional de manera adecuada.
Tendrá menos problemas al usar caracteres imprimibles ASCII, limitando el conjunto de caracteres de puntuación a los que no son metacaracteres de shell y no comienza un nombre con un guión (o una parada, a menos que desee ocultar el archivo).
fuente
Como han dicho los demás, en los sistemas Unix / Linux modernos, los nombres de archivo pueden contener cualquier carácter, excepto
\0
(NUL) y/
(barra oblicua).Además de eso, el estándar POSIX define un juego de caracteres portátil para nombres de archivos:
La
pathchk
utilidad de GNU Coreutils verifica esto cuando se llama con la-p
opción, y la-P
opción advierte sobre nombres de archivos vacíos (que no son válidos pero pueden pasarse como argumentopathchk
) y nombres de archivos que comienzan con un guión (-
).fuente
La apuesta más segura es consultar la entrada de Wikipedia para el conjunto de caracteres permitido para cualquier sistema operativo. Se puede encontrar desde aquí .
Por ejemplo, para la mayoría de los sistemas basados en Unix, el conjunto de caracteres permitido es de 8 bits y el carácter reservado es el carácter nulo (NUL,
'\0'
). Sin embargo, no es una buena práctica usar los caracteres especiales en los nombres de los archivos, ya que representan un problema al eliminarlos.Por ejemplo, puedo tener un nombre de archivo como
-ramesh.txt
e intento eliminarlo como se muestra a continuación.Necesito eliminar el archivo como,
Se pueden encontrar más detalles de esta respuesta también .
Para concluir, el problema no está en usar los caracteres especiales para los nombres de archivo sino en cómo manejarlos.
fuente
-
sino solo para ser precisos: 1) definitivamente no necesita las comillas alrededor de este nombre de archivo, 2) en lugar de usar el--
argumento especial , puede hacer exactamente lo querm
sugiere:rm ./-ramesh.txt
así que no necesita hacerlo exactamente como sugieres.Su investigación es casi correcta. Es posible usar caracteres especiales en los nombres de archivo, pero no es aconsejable ya que estos caracteres tienen un significado especial. Las convenciones de nomenclatura de archivos en Linux describen otras restricciones en los nombres de archivos, como "Los nombres de archivos nunca deben comenzar con un guión".
Ejemplo simple de realizar operaciones de línea de comando con caracteres especiales en los nombres de archivo.
Como nota personal, prefiero evitar caracteres especiales en los nombres de los archivos porque requieren atención especial cuando estos archivos se utilizan para cualquier procesamiento. Por lo tanto, elimina la preocupación de tratar con caracteres especiales del proceso de desarrollo.
fuente
-
,_
y.
(DOT) en los nombres de archivo?