Solo necesitas para crear una lista de archivos coincidentes globales, separados por espacio:
for file in .* *; do echo "$file"; done
Editar
El anterior se puede reescribir en una forma diferente usando la expansión de llaves
for file in {.*,*}; do echo "$file"; done
o incluso más corto : for file in {.,}*; do echo "$file"; done
Añadiendo la ruta de los archivos seleccionados:
for file in /path/{..?,.[!.],}*; do echo "$file"; done
Añadiendo la ruta de los archivos seleccionados archivos:
for file in /path/{.,}*; do echo "$file"; done
Si desea ser sofisticado y eliminar de la lista .
y
simplemente cambie {.,}*
a {..?,.[!.],}*
.
Para completar, vale la pena mencionar que también se puede configurar dotglob para que coincida con archivos dot con *
puros.
shopt -s dotglob
En zsh
se necesita establecer adicionalmente nullglob
para evitar el error en caso de no coincidencias:
setopt nullglob
o, alternativamente, agregue el calificador glob N
al patrón:
for file in /path/{.,}*(N); do echo "$file"; done
Comentarios