shopt

shell options - manual

Se pueden definir las opciones del shell con set (-s) o unset (-u). Para obtener la lista de parámetros definibles se puede invocar shopt o shopt -p.

Ejemplo

recursive-move.sh

#!/bin/bash

# Lista el contenido del directorio; si es otro directorio, entra y vuelve a
# listar el contenido. Si no es una carpeta, la mueve al directorio inicial.
# Tiene en cuenta carpetas vacías y archivos ocultos.

function movercosas () {
  for objeto in * ; do
    if [ -d "${objeto}" ] ; then
      cd "${objeto}"
      movercosas
      cd ..
    else
      echo -e "\t... moviendo $objeto ..."
      mv "${objeto}" "${directorioDestino}/${objeto}"
    fi
  done
}

shopt -s nullglob
shopt -s dotglob

echo -n "Introduce el directorio de inicio (desde '/'): "
read directorioInicio
echo -n "Introduce el directorio de destino (desde '/'): "
read directorioDestino
echo ""

if [ -d ${directorioDestino} ] ; then
  : ; else
  echo -e "\t... creando ${directorioDestino} ..."
  mkdir -p ${directorioDestino}
fi

cd "${directorioInicio}"
movercosas
cd "${directorioInicio}"

shopt -u nullglob
shopt -u dotglob