#!/usr/bin/env zsh # Makes all files in lower case. Works with Non-ASCII characters. # Equivalent to `zmv "${dir}/(*)" '${dir}/${1:l}'` setopt LOCAL_OPTIONS ERR_RETURN NO_UNSET PIPE_FAIL autoload -U die [[ ${ARGC} -ne 1 ]] && die 1 "Usage: ${0} " local dir="${1}" for file in "${dir}"/*; do local basename="${file##*/}" local newfile="${dir}/${basename:l}" [[ "${file}" != "${newfile}" ]] && mv "${file}" "${newfile}" || : done