significa que manejo extensiones ejemplos directorios crear consola como comandos carpeta basicos archivos windows linux file filesystems filenames

windows - que - ¿Hay algún nombre de archivo de Linux no válido?



manejo de archivos y directorios (3)

Si quisiera crear una cadena que garantice que no representa un nombre de archivo, podría incluir uno de los siguientes caracteres en Windows:

/ / : * ? | < >

p.ej

this-is-a-filename.png ?this-is-not.png

¿Hay alguna manera de identificar una cadena como ''posiblemente no un archivo'' en Linux?


Casi no hay restricciones, aparte de ''/'' y ''/0'' , puedes usar cualquier cosa. Sin embargo, algunas personas piensan que no es una buena idea permitir tanta flexibilidad.


Personalmente encuentro que muchas veces el problema no es Linux, sino las aplicaciones que se usan en Linux.

Tomemos como ejemplo a Amarok. Recientemente noté que ciertos artistas que había copiado de mi máquina Windows no aparecían en la biblioteca. Revisé y confirmé que los archivos estaban allí y luego noté que ciertos caracteres en los nombres de las carpetas (nombrados para el artista) estaban representados con un cuadrado de aspecto extraño en lugar de un personaje real.

En un terminal shell, los nombres de los archivos son aún más extraños: / Music / Albums / Einst $ ''/ 374''rzende / Neubauten es un ejemplo de lo extraño que es.

Si bien estos archivos definitivamente estaban allí, Amarok no podía verlos por alguna razón. Pude usar algunos trucos de shell para cambiarles el nombre a versiones sanas, que luego pude renombrar con caracteres ASCII solo utilizando Musicbrainz Picard. Desafortunadamente, Picard tampoco pudo abrir los archivos hasta que los renombré, de ahí la necesidad de un script de shell.

En general, este es un área difícil y parece ser muy espinoso si está tratando de sincronizar una colección de música entre Windows y Linux, donde ciertos nombres de carpeta o archivo contienen caracteres funky.

Lo más seguro es apegarse a los nombres de archivo solo ASCII.


Una cadena vacía es el único nombre de ruta realmente inválido en Linux, que puede funcionar para usted si solo necesita un nombre inválido. También podría usar una cadena como " ///foo ", que no sería un nombre de ruta canónico , aunque podría referirse a un archivo (" /foo "). Otra posibilidad sería algo así como " /dev/null/foo ", ya que /dev/null tiene un significado no de directorio definido por POSIX. Si solo necesita cadenas que no podrían referirse a un archivo normal, podría usar " / " o " . ", Ya que esos son siempre directorios.