[Como] tratar ficheros ocultos como normales, en una terminal

Imagen de gotxa
0 puntos

hola,
en general, el trabajo en consola con archivos/directorios ocultos puede ser tedioso porque hay que poner especial cuidado de no cometer ningún error o de olvidarse algo por ahí.

Por ejemplo, no es difícil olvidar una copia de un directorio oculto al hacer 'cp -R * /directorio/destino' [no lo intenten en casa].

O querer borrar un directorio '.para-borrar' con sus contenidos y ejecutar el muy peligroso 'rm -fr .*' [no lo intenten en casa], que nos borrará todo recursivamente en directorios padre y no sólo el que pensábamos; recordemos que '..' (directorio padre) y '.' (directorio actual) no son más que casos especiales de directorios ocultos.

Para evitar estos inconvenientes podemos utilizar shopt:

$ shopt -s dotglob

(-s de set) hará que los archivos y directorios que comiencen por '.', inicialmente ocultos, respondan de manera normal a la expansión de nombres. Esto es, ya no serán inmunes a los wildcards (*, ?).

Así, la instrucción 'cp * /directorio/destino' copiará también todo lo que empiece por '.', 'ls *music*' nos listará '.musica-ful' y 'musica-vale'. Todo esto sólo para hacernos la vida algo más fácil.

Para ver el estado de esta variable que controla el comportamiento de la terminal, podemos hacer:

$ shopt dotglob

Para restaurar el valor (-u de unset):

$ shopt -u dotglob

Este comando tiene otras muchas opciones de comportamiento del shell. Información detallada en:
http://www.gnu.org/software/bash/manual/bashref.html#Bash-Builtins

Saludos
g