bash:递归地将父子目录中的所有匹配文件移动到新子目录

时间:2015-08-03 15:59:23

标签: linux bash

我一直试图以递归方式将父子目录中的所有匹配文件移动到新子目录。当前结构如下(有波文件以外的文件,需要排除它们):

.
├── a
│   ├── a.wav
│   └── media.dir
├── b
│   ├── b.wav
│   └── media.dir
├── c
│   ├── c.wav
│   └── media.dir
└── d
    ├── d.wav
    └── media.dir

我想将每个目录中的wave文件移动到相应的media.dir。到目前为止,我有这个,这是匹配,但不是文件移动(当我回应而不是mv,我可以确认文件):

for dir in */
do
    find . -iname '*.wav' -print0 | xargs -0 -I{} mv '{}' "$dir/media.dir"
done

1 个答案:

答案 0 :(得分:2)

您的代码中可能需要i = x >> 1; // i = 0b01000 = 8 而不是find "$dir"

find .