我有一个目录,里面有许多目录(abc1 abc2 abc3 等),其中包含一个子目录 - 始终具有相同的名称(MATCHING_STRING) - 其中包含大量文件。我想删除该子目录(MATCHING_STRING),将文件保留在自己的 abc# 目录中。我不希望所有文件都出现在一个位置,就像mv */* .
前:
主
/
│
...
后:
主/
═─abc1/
│ ═─xyz2 │ ═─xyz1
═─abc2/
│ ═─xyz2 │ ═─xyz1
答案1
我将使用 PowerShell 来实现这一点(但您也可以使用find
命令)
查找选项
您将丢失具有重复名称的文件
之前的文件夹
~/test$ tree
.
├── abc1
│ └── string
│ ├── file1
│ └── file2
└── abc2
└── string
├── file1
└── file2
4 directories, 4 files
执行
~/test$ for i in */string; do cd $(dirname $i); find . -type f -exec mv '{}' . \;;cd ..; done
之后的文件夹
~/test$ tree
.
├── abc1
│ ├── file1
│ ├── file2
│ └── string
└── abc2
├── file1
├── file2
└── string
4 directories, 4 files