我有这个:
.
├── dirA
│ └── ProdA
│ ├── Brief
│ │ └── Form.xlsx
│ ├── Results
│ └── Studies
└── dirB
└── BrandB
└── ProdB
├── Brief
│ └── Form.xlsx
└── Results
我想要这个:
.
├── dirA
│ └── ProdA
│ ├── Brief
│ ├── Results
│ └── Studies
│ └── Form.xlsx
└── dirB
└── BrandB
└── ProdB
├── Brief
└── Results
└── Studies
└── Form.xslx
因此,基本上我必须找到文件form.xlsx,然后将其从子目录摘要转移到子目录研究(如果不存在,则创建它(。
。当我这样做时:
find . -name '*.xlsx' -exec mv '{}' ../Studies ';'
我得到了:
.
├── dirA
│ └── ProdA
│ ├── Brief
│ ├── Results
│ └── Studies
└── dirB
└── BrandB
└── ProdB
├── Brief
└── Results
您不应该使用 ..
获取匹配的文件的父目录,而是使用 dirname
。
find . -name "*.xlsx" -exec sh -c 'mv {} "$(dirname $(dirname {}))/Studies/"' ;
尝试一下!:(