查找选项

查找选项

我有一个目录,里面有许多目录(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

find 命令的来源 循环源

相关内容