繁体   English   中英

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

[英]bash: recursively move all matched files in sub directory of parent to new sub directory

我一直试图递归地将父目录下所有匹配的文件移动到新目录下。 当前结构如下(除了wave文件,还有其他文件,需要将它们排除在外):

.
├── 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

您可能想要find "$dir"而不是find . 在您的代码中:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM