function renlow --description 'Rename all files and directories with lowercase characters' if not command -sq 'find' echo "Can't find find." return 1 end for file in (find . -type f) set -l element (string split -r -m1 / $file) mv $file $element[1]/(string lower $element[2]) end set -f dirs (find . -type d) for dir in $dirs[-1..1] # Rename directories in reverse order set -l element (string split -r -m1 / $dir) if not test -z $element[2] # Catch . mv $dir $element[1]/(string lower $element[2]) end end end