Inicialmente pensé que era una coincidencia, pero ahora veo que incluso hay una etiqueta : todos los nombres de archivos ocultos comienzan con un punto. ¿Es esto una convención? ¿Por qué fue elegido? ¿Se puede cambiar? O en otras palabras (como una pregunta relacionada @evilsoup sugirió que implica la respuesta a un montón de otros): ¿puedo ocultar archivos sin renombrarlos (usando .
como primer carácter de su nombre)?
filesystems
filenames
dot-files
JMCF125
fuente
fuente
Respuestas:
De acuerdo con Wikipedia ,
... así que comenzó como un error, y luego se adoptó como una característica (para el registro,
.
es un enlace al directorio actual y..
es un enlace al directorio que se encuentra arriba, pero estoy seguro de que ya lo sabe ) Dado que este método de ocultar archivos en realidad es lo suficientemente bueno la mayor parte del tiempo, supongo que nadie se molestó en implementar la ocultación de archivos al estilo de Windows.También está el hecho de que implementar diferentes comportamientos produciría una cantidad aún mayor de fragmentación en el mundo * nix, que es lo último que alguien quiere.
Hay otro método para ocultar archivos que no implica renombrarlos, pero solo funciona para los administradores de archivos GUI (y no es universal entre ellos; los principales Linux lo usan, pero no creo que OSX's Finder lo haga, y cuanto más específicos sean los administradores de archivos de Linux, es menos probable que admitan este comportamiento): puede crear un archivo llamado
.hidden
y poner dentro de él los nombres de archivo que desea ocultar, uno por línea.ls
y los globos de concha no respetarán esto, pero podría ser útil para usted, aún.fuente
Los archivos que comienzan con un punto son ignorados por defecto por el comando "ls", que tiene más o menos el mismo efecto que los archivos "ocultos" pero no es el mismo (otros comandos pueden elegir hacer lo mismo o no). Los archivos que comienzan con un punto no están "ocultos" porque "oculto" no es uno de sus atributos. A diferencia de DOS / Windows, "oculto" no es un atributo en Unix. Hay muchos atributos en Unix ("man chattr" te dirá todos ellos) pero oculto no es uno de ellos.
La razón por la cual los archivos de puntos son ignorados por "ls" es bastante gracioso / vergonzoso. No fue una decisión de diseño, sino el resultado de un error de software en los primeros días de Unix . Cuando el especial. y ... se agregaron entradas de directorio al sistema de archivos, se decidió que el comando ls no debería mostrarlas porque se estaban interponiendo en el camino. Sin embargo, el programa se escribió rápidamente para excluir cualquier archivo cuyo nombre comenzara con a. carácter, en lugar de los nombres exactos "." o "..". Y creó un precedente que se ha seguido desde entonces en Unix. Curiosamente, cuando los chicos de Unix se movieron para crear el Plan 9 , no pusieron archivos de puntos a propósito .
fuente
man chattr
, aunque pensé que tal vez necesitaría algún paquete o programa específico para hacer posibles otros archivos ocultos.Si puede ocultar archivos o no, y en qué condiciones, depende del sistema de archivos que esté utilizando y su controlador. Los sistemas de archivos tradicionales de Unix no tienen un atributo "ocultar" para los archivos.
Un controlador de sistema de archivos puede ocultar cualquier archivo que desee, simplemente omitiendo sus nombres cuando proporciona resultados a las llamadas al sistema que se utilizan para obtener una lista de directorio. Como describió sergut en su respuesta, los archivos que comienzan con un punto no están realmente ocultos.
(Así es también como los rootkits pueden ocultar sus archivos: se conectan a las llamadas del sistema que producen listados de directorio y filtran los archivos que desean ocultar).
Por ejemplo, en los sistemas de archivos del clúster Oracle ACFS, el directorio
<filesystem mountpoint>/.ACFS/
está realmente oculto: simplemente no aparecerá en la lista, ni siquiera conls -a
. Pero si sabe que está allí, puede acceder a él perfectamente.Si está utilizando la función de instantánea del sistema de archivos ACFS, puede acceder a cualquier instantánea del sistema de archivos existente a través de ese
.ACFS
directorio. Si no estuviera oculto, un programa de copia de seguridad podría terminar haciendo una copia de seguridad tanto del contenido actual del sistema de archivos como del contenido de las instantáneas existentes, lo que probablemente sería indeseable; normalmente desea hacer una copia de seguridad del estado actual o del estado de una instantánea específica.fuente