# Group files by extension.
# Usage: group_ext [FILES]
function group_ext() {
local IFS=$'\n'
local targets=(${@})
[[ "${targets}" = "" ]] && targets=($(_ls_file))
process() {
local ext=${target##*.}
[[ -d "${target}" ]] && { _iterate_skip "Is a directory."; return 0; }
[[ "${ext}" = "${target}" ]] && { _iterate_skip "No extension."; return 0; }
mkdir ${ext} 2> /dev/null
mv -- ${target} ./${ext}/${target}
}
_iterate_targets process ${targets[@]}
# Group files and dirs by year.
# Usage: group_year [FILES]
function group_year() {
[[ "${targets}" = "" ]] && targets=($(ls))
local year=$(stat --format=%y ${target})
year=${year%%-*}
mkdir ${year} 2> /dev/null
mv -- ${target} ./${year}/${target}