在 Linux 中查找最大深度为 2 的文件并移至相应文件夹

Find files with maxdepth 2 in Linux and move to respective folder

我有以下命令将文件从一个目录移动到另一个目录,效果很好。

find /volume1/backup/ -type f -mtime +365 -exec mv -v "{}" /usb1/backup/ \;

但是,我已经将 /backup 中的目录结构更改为具有子目录(一个深度)。现在我想将这些子目录中的文件复制到 /usb1 卷上它们各自的目录。我已经包括了 -maxdepth 2 和 -mindepth 2,但我不知道下一步该怎么做...

find /volume1/backup/ -maxdepth 2 -mindepth 2 -type f -mtime +365 -exec mv -v "{}" /usb1/backup/ \;

所以,我没能找到一个简短的答案,但下面的答案对我有用:

for d in $(find /volume1/backup/ -maxdepth 1 -mindepth 1 -type d)
do
  for f in $(find $d -maxdepth 1 -type f -mtime +365 -print0 | sort -z | xargs -r0)
  do
    mv -v $f /usb1/backup/$(basename $d)/;
  done
done