while set -- **/*.zip; [ $# -ge 1 ] do for z do ( cd -- "$(dirname "$z")" && z=${z##*/} && cp -- "$z" "$z".bak && mkdir -- "$z"dir && unzip -- "$z" -d "$z"dir && rm -- "$z" ) done done Unzip recursively into respective subdirectory
find . -depth -exec sh -c '
t=${0%/*}/$(printf %s "${0##*/}" | tr "[:upper:]" "[:lower:]"); [ "$t" = "$0" ] || mv -i "$0" "$t" ' {} \; Find in directory and sub directories all files and convert their name from uppercase to lowercase
find . -depth -exec sh -c '
t=${0%/*}/$(printf %s "${0##*/}" | tr "[:lower:]" "[:upper:]"); [ "$t" = "$0" ] || mv -i "$0" "$t" ' {} \; Find in directory and sub directories all files and convert their name from lowercase to uppercase