将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 -)