将subdir中的文件移动到另一个目录

我有一个目录: ../Music Music在很多子目录中有很多音乐文件。

如何将子目录中的所有文件移动到另一个目录?
因此,我只想移动文件,我不想保留子目录结构。

假设当前目录包含子文件夹,请在使用它时替换以下语句中的TARGET_DIR:

 find . -name '*.mp3' -exec mv {} TARGET_DIR \; 

试试这个:

  cd ../Music for i in `ls -Q`; do mv $i/* /Path/To/Some/Other/Directory; done 

我建议使用cp而不是mv来检查它是否正常工作。 如果它工作正常,只需删除..Music目录

编辑:添加-Q (需要添加此解释以超过六个字符)

第一个答案是正确的,但假设您只有一层子目录,更简单的方法是:

 mv ../Music/*/*.mp3 [insert target dest here] 

您也可以使用Rhythmbox,banshee或类似的软件。 他们可以扫描您的音乐目录。

您可以选择保留目录或(在您的情况下)软件可以将文件移动到rhythmbox / banshee目录,这将消除您想要的层次结构。

然后,

 cp /target/directory/* /desination/directory/ -r 

然后,如果成功则删除原始文件。

 (cd ~/Music ; tar cf - ) | (cd /path/to/other/directory; tar xf -)