如何将子文件夹中的子文件夹移动到文件夹中

如何将子文件夹中的子文件夹移动到文件夹中

这有点棘手

我有一个文件夹,这个文件夹里面有几个子文件夹,每个子文件夹包含一个自己的子文件夹(子子文件夹),我想将这些“子子文件夹”移动到原始文件夹中。

现在的情况如下:

Archives/
├── Records_A/
│   └── Folder_1/
|       └── Item_1.png
├── Records_B/
│   └── Folder_2/
|       └── Item_2.png
├── Records_C/
│   └── Folder_3/
|       └── Item_3.png
├── Records_D/
│   └── Folder_4/
|       └── Item_4.png
├── Records_E/
│   └── Folder_5/
|       └── Item_5.png

...

我想移动所有子文件夹,使其看起来像这样:

Archives/
├── Folder_1/
│   └── Item_1.png
├── Folder_2/
│   └── Item_2.png
├── Folder_3/
│   └── Item_3.png
├── Folder_4/
│   └── Item_4.png
├── Folder_5/
│   └── Item_5.png
├── Records_A/
├── Records_B/
├── Records_C/
├── Records_D/
├── Records_E/

...

有没有办法在 bash 中做到这一点?

我不想在这里移动任何文件,只想移动文件夹

请注意,子文件夹的名称并不总是以“Record_”开头,并且子子文件夹的名称并不总是以“Folder_”开头,我正在寻找基于目录结构而不是名称的通用解决方案。

编辑:如果其他人遇到同样的问题,我找到了解决方案:

mv -v ./Records_*/* ./

只需将“Records_”替换为文件夹名称开头的前缀(或将所有内容保留为 *)。

答案1

$ tree
.
├── Records_A
│   └── Folder_1
│       └── Item_1.png
├── Records_B
│   └── Folder_2
│       └── Item_2.png
├── Records_C
│   └── Folder_3
│       └── Item_3.png
├── Records_D
│   └── Folder_4
│       └── Item_4.png
└── Records_E
    └── Folder_5
        └── Item_5.png

10 directories, 5 files
[/tmp/Archives]$ find . -mindepth 2 -maxdepth 2 -type d | xargs -I {} mv {} .
[/tmp/Archives]$ tree
.
├── Folder_1
│   └── Item_1.png
├── Folder_2
│   └── Item_2.png
├── Folder_3
│   └── Item_3.png
├── Folder_4
│   └── Item_4.png
├── Folder_5
│   └── Item_5.png
├── Records_A
├── Records_B
├── Records_C
├── Records_D
└── Records_E

10 directories, 5 files

相关内容