lunes, 29 de junio de 2015

Expansión de nombres de archivos ocultos

Como sabemos, los nombres de archivo que empiezan por un punto están ocultos. La expansión de nombres de archivo también respeta este comportamiento. Una expansión como:

echo *

no revela los archivos ocultos.

Podría parecer a primera vista que podríamos incluir archivos ocultos en una expansión comenzando el patrón con un punto, así:

echo .*

Casi funciona. De todas formas, si examinamos los resultados atentamente, veremos que los nombres “.” y “..” también aparecen en los resultados. Como estos nombres se refieren al directorio actual y su directorio padre, usar este patrón probablemente producirá un resultado incorrecto. Podemos verlo si probamos el comando:

ls -d .* | less

Para ejecutar mejor una expansión de nombres de archivo en esta situación, tenemos que emplear un patrón más específico:

echo .[!.]*

Este patrón se expande en todos los nombres de archivo que empiecen con un punto, no incluye un segundo punto, seguido de cualquier otro carácter. Esto funcionará correctamente con la mayoría de archivos ocultos (aunque no incluirá archivos con varios puntos al comienzo de su nombre). El comando ls con la opción -A (“almost all” o “casi todo”) proporcionará un listado correcto de los archivos ocultos:

ls -A

No hay comentarios:

Publicar un comentario