Mover todos los ficheros de un directorio a otro, incluidos los ocultos

Supongamos que queremos mover todo el contenido de un directorio a otro. Podemos utilizar el comando mv:

mv <directorio de origen>/* <directorio de destino>/

Sin embargo, si ejecutamos este comando con las opciones por defecto de la shell los archivos ocultos no se moveran y permanecerán en el directorio de origen. Esto podemos comprobarlo de la siguiente manera:

ls -a <directorio de origen>

Para mover todos los ficheros, incluidos los ocultos, deberemos activar la opción dotglob de bash:

shopt -s dotglob

Si además queremos evitar que nos devuelva un error en el caso de que intentemos mover el contenido de un directorio que realmente está vacío, podemos activar la opción nullglob:

shopt -s nullglob

Ahora ya podemos mover el contenido sin tener que preocuparnos de que se nos queden atrás ficheros ocultos:

mv <directorio de origen>/* <directorio de destino>

Y nuevamente lo comprobamos:

ls -a <directorio de origen>

Veremos que ahora el directorio de origen está realmente vacío.