¿Por qué "ls" no enumera los archivos que comienzan con "." En Linux

1

Estaba buscando una .androidcarpeta " " y la usé por lstodas partes, hasta que decidí usarla locate(después de una updatedb) y descubrí que estaba en mi /home/johndoe/carpeta todo el tiempo. Cuando estoy lsen la carpeta, la .androidcarpeta no está en la lista. ¿Alguien puede explicar por qué esto no aparece en mi lista con mi amado lscomando?

N8sBug
fuente

Respuestas:

2

Los archivos y carpetas que comienzan con .son archivos ocultos en un sistema operativo tipo UNIX típico.

Use ls -apara enumerar todos los archivos.

nc4pk
fuente
3

Tradicionalmente, en los sistemas operativos UNIX y UNIX, el .prefijo significa un archivo oculto , similar al indicador "Oculto" en Windows. Funciona en cualquier lugar, pero su uso principal es ocultar los archivos de configuración en su directorio de inicio (p. Ej. ~/.cache/O ~/.plan, a menudo se los llama "archivos de puntos").

Para forzar la lsvisualización de archivos ocultos, necesita la -aopción.

Casi todos los administradores de archivos gráficos también respetan este prefijo; CtrlHalterna los archivos "ocultos" en GNOME.


Como Rob Pike escribe en Google+ , esta fue una característica accidental:

Hace mucho tiempo, mientras se estaba elaborando el diseño del sistema de archivos Unix, las entradas. y ... apareció, para facilitar la navegación. No estoy seguro, pero creo que ... entró durante la reescritura de la Versión 2, cuando el sistema de archivos se volvió jerárquico (al principio tenía una estructura muy diferente). Sin embargo, cuando uno escribió ls, aparecieron estos archivos, por lo que Ken o Dennis agregaron una prueba simple al programa. Estaba en ensamblador entonces, pero el código en cuestión era equivalente a algo como esto:

if (name[0] == '.') continue;

Esta declaración fue un poco más corta de lo que debería haber sido, que es

if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;

pero bueno, fue fácil.

Dos cosas resultaron.

Primero, se estableció un mal precedente. Muchos otros programadores perezosos introdujeron errores al hacer la misma simplificación. Los archivos reales que comienzan con puntos a menudo se omiten cuando deben contarse.

En segundo lugar, y mucho peor, se creó la idea de un archivo "oculto" o "punto". Como consecuencia, más programadores perezosos comenzaron a soltar archivos en el directorio de inicio de todos. No tengo tantas cosas instaladas en la máquina que estoy usando para escribir esto, pero mi directorio de inicio tiene alrededor de cien archivos de puntos y ni siquiera sé qué son la mayoría de ellos o si todavía son necesarios . Cada lodo acumulado ralentiza cada evaluación de nombre de archivo que pasa por mi directorio de inicio.

Gravedad
fuente
0

Debe pasar el parámetro "-a" para "todos" para que ls muestre los archivos de puntos.

headkase
fuente