python或bash代码将子文件夹内容清空到主文件夹并删除空子文件夹

python或bash代码将子文件夹内容清空到主文件夹并删除空子文件夹,python,bash,shell,Python,Bash,Shell,在我的音乐目录中,我有每个艺术家和专辑的子文件夹。我想做一个自动化脚本,进入每个子文件夹,剪切和粘贴到我的主音乐目录的所有内容。脚本移动音乐后,我希望它删除空的子文件夹。python或shell脚本中的某些东西将非常棒。有什么想法吗?命令将列出命名目录子目录中的所有文件。因此: find . -type f 这将生成一个文件名列表。要将所有这些文件移动到当前目录 mv `find . -type f` . 最后,要递归删除任何空子目录 find . -type d | xargs rmdir

在我的音乐目录中,我有每个艺术家和专辑的子文件夹。我想做一个自动化脚本,进入每个子文件夹,剪切和粘贴到我的主音乐目录的所有内容。脚本移动音乐后,我希望它删除空的子文件夹。python或shell脚本中的某些东西将非常棒。有什么想法吗?

命令将列出命名目录子目录中的所有文件。因此:

find . -type f
这将生成一个文件名列表。要将所有这些文件移动到当前目录

mv `find . -type f` .
最后,要递归删除任何空子目录

find . -type d | xargs rmdir

如果您的任何文件或目录名中有空格,则会得到更多。。。有趣。但是如果是这样的话,您可以使用上面的命令作为起点。

find命令在生成文件列表方面效果非常好,但是当我尝试移动它们时,出现了以下错误:“mv:invalid option--'W'Try`mv--help'以获取更多信息。”听起来您的文件名称以
-
开头。您应该能够使用
mv--`find告诉
mv
退出处理选项-键入f`.
在命令替换中不要将
mv
find
一起使用。对于包含空格(音乐文件可能有空格)的文件名,这将失败。使用
查找-行政长官…\
查找-打印0 | xargs-0 mv…
cut?粘贴您需要的命令是
mv
#!/bin/bash
cd ~/music    # wherever your music directory is
mv */* .
rmdir * 2>/dev/null