递归排序多个文件

Sort Multiple Files Recursively

我正在尝试对多个子目录中的多种文件进行递归排序。

目前我有这个,它只对当前目录进行排序,并且只针对一种特定类型的文件:

for x in *.jpg; do
   d=$(date -r "$x" +%Y-%m-%d)
   mkdir -p "$d"
   mv -- "$x" "$d/"
done

我希望排序能够搜索子目录,并对多种类型的文件进行排序,而不仅仅是“*.jpg”文件。

假设你用的是bash4,就这么简单

shopt -s globstar
for x in **/*; do
    [[ -d $x ]] && continue  # Skip directories
    d=$(date -r "$x" +%Y-%m-%d)
    mkdir -p "$d"
    mv -- "$x" "$d/"
done