Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux bash:递归地将父目录子目录中所有匹配的文件移动到新的子目录中_Linux_Bash - Fatal编程技术网

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

Linux bash:递归地将父目录子目录中所有匹配的文件移动到新的子目录中,linux,bash,Linux,Bash,我一直在尝试递归地将父目录子目录中所有匹配的文件移动到新的子目录。当前结构如下(除wave文件外,还有其他文件,需要排除这些文件): 我想将每个目录中的wave文件移动到相应的media.dir。到目前为止,我已经有了这个,它正在为匹配工作,但不是文件移动(当我回音而不是mv时,我可以确认文件): 您可能希望在代码中查找“$dir”而不是查找。: for dir in */ do find "$dir" -iname '*.wav' -print0 | xargs -0 mv -t "

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

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


您可能希望
在代码中查找“$dir”
而不是
查找。

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

澄清-您需要与mv a/a.wav a/media.dir/等效的
;mv b/b.wav b/media.dir/?这是正确的,但是看起来下面的更改正是我所需要的。谢谢
for dir in */
do
    find . -iname '*.wav' -print0 | xargs -0 -I{} mv '{}' "$dir/media.dir"
done
for dir in */
do
    find "$dir" -iname '*.wav' -print0 | xargs -0 mv -t "$dir/media.dir"
done