La respuesta corta

La respuesta corta

A veces tiene sentido práctico que el nombre de una carpeta contenga un punto ( .). Por ejemplo, está almacenando datos para un experimento realizado en L=0,5. Entonces la carpeta podría llamarse:

experiment_L0.5

Puede surgir un problema similar con los nombres de archivos. Por ejemplo:

file_L0.5.txt

Trabajar en Ubuntu, ¿es esta una mala práctica? ¿Qué tal compartir estos directorios con un usuario de Windows?

Respuesta1

Hasta donde yo sé, no hay problemas al nombrar carpetas y archivos con uno o varios puntos.

Ubuntu generalmente no usa el punto y 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. usos de ubuntuNúmeros mágicosen 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 a Nautilus a ignorar las extensiones.

En Ubuntu, comenzar el nombre de un archivo o carpeta con un punto, como .experiment_L0.5, hace que el archivo o la carpeta se oculte. Puede alternar la visualización de archivos ocultos presionando Ctrl+ Hen Nautilus. En Windows, un nombre de archivo que comienza con a .delante no está oculto. Entonces, si transfieres un archivo oculto con nombre .experiment_L0.5a un sistema Windows, será claramente visible.

En Ubuntu, un nombre de archivo puede terminar con un punto, ya que no tiene ningún significado especial al final. Sin embargo, en Windows, un punto separa el nombre del archivo y la extensión, y no se permite un nombre de archivo que termine con un punto pero sin extensión. Cuando intenté crear un archivo de este tipo en Windows, obtuve un archivo con solo el nombre, sin punto ni extensión.

Referencia:Wiki sobre nombres de archivos

Espero que esto ayude.

Respuesta2

La respuesta corta

  • Windows no permite los siguientes caracteres: <>:"/\|?*(fuente)
  • Más caracteres que no se recomiendan son: espacio y punto .(fuente)
    • Las herramientas de línea de comando son más difíciles de usar cuando hay espacios en los nombres (más difícil, no imposible)
    • Los puntos se utilizan en RegEx (por ejemplo, cuando desea utilizar grep). Un punto inicial hace que un archivo esté oculto por convención en Linux. En Windows, los puntos se utilizan en la extensión del archivo, que se utiliza para la detección del tipo de archivo.
  • Windows tampoco permitirá nombres de archivos CON, PRN, AUX, CLOCK$, NUL COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9 LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, y LPT9. (fuente)
  • Los únicos caracteres no permitidos en los sistemas de archivos Unix que conozco son /nulos (el byte nulo \0).
  • Ver también:Límites del sistema de archivos(No sé con qué Windows quieres que sea compatible).

la respuesta larga

Antecedentes técnicos: sistema de archivos

Ubuntu hace uso de laext4sistema 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 utiliza 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 de ello) 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 "inodos" para archivos y directorios. Esos inodos contienen punteros a otros bloques (que también pueden ser inodos 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:

  • archivo normal
  • directorio
  • archivo de dispositivo (dispositivo de bloque o carácter)
  • ...

De hecho, también puedes abrir directorios con un editor:

vim /home

Como el directorio no contiene la ruta completa, sino solo los nombres del contenido, no veo ninguna razón por la cual los archivos no puedan contener un archivo /. Supongo que podría ser conveniencia. (¿Alguien sabe por qué /no está permitido?)

Sin embargo, las cosas son diferentes para otros sistemas de archivos. FAT16 y FAT32 utilizaron la llamada "tabla de asignación de archivos". Esto significa que hay una tabla que contiene todos los archivos almacenados en su archivo, en qué "clúster" comienzan y en qué clúster terminan como una lista enlazada individualmente.

Lo importante que quería decirle es que los caracteres no permitidos también pueden depender del sistema de archivos.

Antecedentes técnicos: tipos de archivos

  • Windows usa extensiones de archivos para detectar tipos de archivos
  • Linux utiliza "Magic Bytes" para detectar tipos de archivos.Bytes mágicosson parte del contenido del archivo y, por lo tanto, completamente independientes del nombre. Estos bytes son parte de la especificación del tipo de archivo (verespecificación pngcomo ejemplo). También utiliza las extensiones de nombre de archivo para archivos con los mismos bytes mágicos, como .txto .html(ambos son archivos de texto).

Relacionado

Respuesta3

En aras de la exhaustividad, los nombres que constan sólo de uno .o dos puntos ..son especiales:

  • .se refiere al directorio actual
  • ..se refiere al directorio principal

Esas entradas se agregan automáticamente y siempre existen, por lo que no puede tener un archivo con el nombre .o ...

Respuesta4

La denominación de archivos es muy flexible en los sistemas de archivos Unix y Linux. El único nombre de archivo que no puede tener es unnulocarácter o el que contiene a /en su nombre. Pero seguramente sería una buena práctica evitar el uso de caracteres prohibidos/reservados en otros sistemas desde el punto de vista de la portabilidad del nombre; Por ejemplo, no debería utilizar ninguno de " * : < > ? \ / |los caracteres (restringidos por NTFS) en el nombre de su archivo si desea acceder al archivo en un sistema Windows.

Ysobre el uso de un .(punto) en el nombre del archivo, Creo que debería estar bien ya que no parece ser un"reservado"carácter en cualquiera de los sistemas (excepto OpenVMS, MS-DOS y Windows, donde se permite su uso en el nombre del archivo/directorio, pero la última aparición se interpretará como el separador de extensión en VMS, MS-DOS y Windows) como se menciona en el enlace de Wikipedia que sigue:

En otros sistemas, generalmente se considera parte del nombre del archivo y se puede permitir más de un punto. En Unix, un punto inicial significa que el archivo o carpeta normalmente está oculto.

información relacionada