A veces tiene sentido práctico que un nombre de carpeta contenga un punto (.). Por ejemplo, está almacenando datos para un experimento realizado a L = 0.5. Entonces la carpeta podría llamarse:
experiment_L0.5
Un problema similar puede surgir para los nombres de archivo. Por ejemplo:
file_L0.5.txt
Trabajar en Ubuntu, ¿es esta una mala práctica? ¿Qué tal si comparte estos directorios con un usuario de Windows?
¡Gracias!
Respuestas:
Hasta donde sé, no hay problemas al nombrar carpetas y archivos con uno o varios puntos.
Ubuntu generalmente no usa el punto y los tres caracteres (como .txt) para identificar el tipo de archivo. Entonces esto no tiene un significado especial en el contexto de Ubuntu. Esto es útil al compartir archivos con Windows. Ubuntu usa números mágicos en los primeros bytes del archivo para identificar el tipo de archivo. Sin embargo, Nautilus. ignora los números mágicos si la extensión de punto y tres caracteres está disponible para identificar el tipo de archivo. Esta configuración se puede cambiar. Ver Forzar nautilus para ignorar extensiones
En Ubuntu, iniciar un nombre de archivo o carpeta con un punto, como por ejemplo
.experiment_L0.5
, oculta el archivo o la carpeta. Puede alternar la visualización de archivos ocultos presionando Ctrl+ Hen Nautilus. En Windows, un nombre de archivo que comienza con a. No está oculto. Entonces, si transfiere un archivo oculto con nombre.experiment_L0.5
a un sistema Windows, será claramente visible.En Ubuntu, un nombre de archivo puede terminar con un punto, ya que no tiene un significado especial al final. Sin embargo, en Windows un punto separa el nombre y la extensión del archivo, y un nombre de archivo que termina con un punto pero no se permite ninguna extensión. Cuando intenté crear dicho archivo en Windows, obtuve un archivo con solo el nombre, sin punto, sin extensión.
Referencia: Wiki sobre nombres de archivos
Espero que esto ayude.
fuente
:
, ilegales en los nombres de archivos de Windows, lo que creará problemas ( y lo hace ). Ver también aquí .fname.
) tampoco está permitido en Windows.test.
en Windows. Actualizaré mi respuesta.La respuesta corta
<>:"/\|?*
( fuente )y punto
.
( fuente )grep
). Un punto inicial crea un archivo oculto por convención en Linux. En Windows, los puntos se usan en la extensión de archivo, que se usa para la detección del tipo de archivo.CON
,PRN
,AUX
,CLOCK$
,NUL
COM1
,COM2
,COM3
,COM4
,COM5
,COM6
,COM7
,COM8
,COM9
LPT1
,LPT2
,LPT3
,LPT4
,LPT5
,LPT6
,LPT7
,LPT8
, yLPT9
. ( fuente )/
nulos (el byte nulo\0
).La respuesta larga
Antecedentes técnicos: sistema de archivos
Ubuntu hace uso del
ext4
sistema de archivos. Un sistema de archivos rastrea dónde se almacenan los archivos en el almacenamiento subyacente (disco o SSD o lo que sea), los permisos en forma de propietario / grupo / otro pueden leer / escribir / ejecutar, marcas de tiempo, nombre.El sistema de archivos estructura el almacenamiento disponible. El primer bloque se llama "superbloque". Este bloque se usa para montar un sistema de archivos. Hasta donde yo sé, cada sistema de archivos moderno divide su espacio en bloques. Creo (y no estoy muy seguro) que la mayoría de los sistemas de archivos también tienen un tamaño de bloque fijo, aunque el tamaño del bloque se puede configurar cuando se crea el sistema de archivos. ext4 (y también ext2 y ext3) utilizan los llamados "inodes" para archivos y directorios. Esos inodes contienen punteros a otros bloques (que también pueden ser inodes o "bloques de datos"). Y el "primer" inodo de un archivo contiene toda la información que mencioné anteriormente.
Otra información es el "tipo" del archivo. "Tipo" puede ser:
De hecho, también puede abrir directorios con un editor:
Como el directorio no contiene la ruta completa, sino solo los nombres del contenido, no veo una razón por la cual los archivos no pueden contener un
/
. Supongo que podría ser conveniente. (¿Alguien sabe por qué/
no está permitido?)Sin embargo, las cosas son diferentes para otros sistemas de archivos. El FAT16 y FAT32 usaban la llamada "tabla de asignación de archivos". Esto significa que hay una tabla que contiene todos los archivos que están almacenados en su archivo, en qué "grupo" comienzan y en qué grupo terminan como una lista individualmente vinculada.
Lo importante que quería decirte es que los caracteres no permitidos también pueden depender del sistema de archivos.
Antecedentes técnicos: tipos de archivo
.txt
o.html
(ambos son archivos de texto).Relacionado
fuente
.txt
y los.html
archivos tienen diferentes "valores mágicos" - intente renombrar un archivo htmltest.txt
y ejecutarlofile test.txt
. No tiene mucha relevancia para la pregunta original, pero aún así :)file
:file
no solo utiliza valores mágicos para determinar el tipo de archivo. Cada archivo HTML válido es un archivo de texto (en el sentido de que contiene caracteres legibles), pero no todos los archivos de texto válidos son archivos HTML válidos (en el sentido de que se validan con los validadores W3C). Entonces, muchos tipos de archivos (html, xml, csv, js, php, c, h, cpp, ...) son, de hecho, archivos de texto. Solo los archivos binarios tienen bytes mágicos que están en posiciones bien definidas. Todos los archivos que mencioné anteriormente pueden tener espacios en blanco arbitrarios antes del contenido.Para completar, los nombres que consisten solo en un punto
.
o dos puntos..
son especiales:.
se refiere al directorio actual..
se refiere al directorio padreEsas entradas se agregan automáticamente y siempre existen, por lo que no puede tener un archivo llamado
.
o..
.fuente
Esto no importa, ni en Linux ni en Windows.
Es una práctica común tener una carpeta llamada "program.d" - para guardar la configuración y otras cosas para un programa (busque en el directorio / etc)
fuente
La nomenclatura de archivos es muy flexible en Unix, sistemas de archivos Linux. El único nombre de archivo que no puede tener es un carácter nulo o el que contiene un
/
en su nombre. Pero seguramente sería una buena práctica evitar usar los caracteres que están prohibidos / reservados en otros sistemas desde el punto de vista de la portabilidad de nombres; como si no debiera usar ninguno de los" * : < > ? \ / |
caracteres (restringido por NTFS) en su nombre de archivo si desea acceder al archivo en un sistema Windows.Y sobre el uso de un
.
(punto) en el nombre del archivo , creo que debería estar bien, ya que no parece ser un carácter "reservado" en ninguno de los sistemas (excepto OpenVMS, MS-DOS y Windows donde se usa en el nombre de archivo / directorio está permitido, pero la última aparición se interpretará como el separador de extensión en VMS, MS-DOS y Windows) como se menciona en el siguiente enlace de Wikipedia:En otros sistemas, generalmente considerados como parte del nombre de archivo, se puede permitir más de un período. En Unix, un punto inicial significa que el archivo o carpeta normalmente está oculto.
fuente