递归展平根目录中的子目录并维护一级子目录结构

Recursively flattening subdirectories in a root directory and maintaining level 1 sub-directory structure

我有一个大的 n 级目录结构如下:

root
  |
   subdir1
      |
       sub_subdir1
           |
            ....(n-2 levels).....
                                 |
                                  file1
  |
   subdir2
      |
       sub_subdir2
           |
            ....(n-2 levels).....
                                 |
                                  file2

我想展平目录,以便所有级别 1 子目录 包含 文件。我还想删除级别 2 到 (n-1) sub_subdirs,因为它们不包含任何文件。

想要的结果

root
  |
   subdir1
      |
       file1
  |
   subdir2
      |
       file2

我发现很多帖子解释了 flatten 目录的方法,但是 none 解释了如何以受控方式执行此操作,即

我在 stackexchange Unix 和 Linux 上发布了相同的内容,并获得了两个全面的解决方案。这是 link - https://unix.stackexchange.com/questions/531929/recursively-flattening-subdirectories-in-a-root-directory-and-maintaining-level/531937?noredirect=1#comment984926_531937