【发布时间】:2021-03-04 05:01:21
【问题描述】:
我有一个主文件夹(称为级别 0),其中包含 50 多个子文件夹(级别 1),这些子文件夹包含较低级别的子文件夹和文件(级别 2)。我需要将每个文件夹及其内容从 2 级移动到它的 1 级子文件夹(或相对而言,它的父文件夹)。
为了更好地形象化:
Master folder
├ Parent Folder A
│ ├─ Subfolder A
│ │ ├─ File A
│ │ └─ File B
│ ├─ Subfolder B
│ │ ├─ File C
│ │ └─ Folder D
.
. ... more folders ...
.
└─ Parent folder 134
├─ Subfolder CS
│ ├─ File AGF
│ └─ File ARH
├─ File ROQ
└─ File JGL
我需要将父文件夹中的文件夹及其文件移动到主文件夹
目标:
Master folder
├─ Subfolder A
│ ├─ File A
│ ├─ File B
│ ├─ File C
│ ├─ File D
│ ├─ File E
│ └─ File F
├─ Subfolder B
│ ├─ File AZA
│ ├─ File AZB
│ ├─ File AZC
│ └─ File AZD
... and so on
这里的问题是有数百个父文件夹和子文件夹,它们都有不同的名称,可能会发生变化。它们的数量也可能发生变化。我不知道从哪里开始。我需要在 bash 脚本中执行此操作,虽然我发现其他人已经这样做了,但他们都是在 powershell 中完成的。 感谢任何人都可以提供的任何帮助。
【问题讨论】:
-
您可以通过使用 find 并通过 awk 解析输出来创建和执行所需的命令来实现此目的,
-
我以前从来没有用过这么多的 find 所以我可能错了,但不会 find 正在寻找特定的文件或目录名称?通配符能以某种方式用于我的用例吗?
-
如果需要,您可以使用 find 查找所有文件和目录,
-
如果一个 2 级文件夹中有一个 3 级文件夹,其中有一个 4 级文件夹,是保留完整的结构,还是全部展平,只有 1 级下的文件,根本没有子文件夹?
-
保持原样是我的目标。
标签: bash directory subdirectory