2012-07-14 125 views
0

在我的音乐目录中,我为每个单独的艺术家和专辑都有子文件夹。我想制作一个自动化脚本进入每个子文件夹,并将所有内容剪切并粘贴到我的主音乐目录中。脚本移动音乐后,我希望它删除空的子文件夹。在python或shell脚本中的东西会很棒。有任何想法吗?python或bash将子文件夹内容清空到主文件夹并删除空子文件夹的代码

+2

cut?糊?你想要的命令是'mv'。 – 2012-07-14 06:03:36

回答

0

find命令将列出指定目录的子目录中的所有文件。所以:

find . -type f 

这将产生一个文件名列表。所有这些文件最终移动到当前目录,

mv `find . -type f` . 

,递归删除任何空的子目录,

find . -type d | xargs rmdir 

如果你的任何文件或目录名在其中有空格,事情得到了很多更有意思的。但是,如果是这样的话,你可以使用上述作为出发点。

+0

查找命令非常适合生成文件列表,但是当我试图移动它们时,我得到了这个错误“mv:invalid option - 'W' 尝试'mv --help'以获取更多信息。” – 1mdxsec1 2012-07-14 03:06:12

+0

这听起来像你有名字以'-'开头的文件。你应该能够通过'mv - \'find来告诉'mv'退出处理选项。 -type f \''。 – 2012-07-14 03:08:07

+2

不要在命令替换中将'mv'与'find'一起使用。对于包含空格的文件名(该音乐文件退出的可能性)将会失败。使用'find ... -exec mv ... \;'或'find ... -print0 | xargs -0 mv ...' – 2012-07-14 06:05:55

0
#!/bin/bash 
cd ~/music # wherever your music directory is 
mv */* . 
rmdir * 2>/dev/null 
相关问题