【发布时间】:2012-07-14 02:41:11
【问题描述】:
在我的音乐目录中,我有每个艺术家和专辑的子文件夹。我想制作一个自动化脚本,进入每个子文件夹并将所有内容剪切并粘贴到我的主音乐目录中。脚本移动音乐后,我希望它删除空的子文件夹。 python 或 shell 脚本中的某些东西会很棒。有什么想法吗?
【问题讨论】:
-
剪切?粘贴?你想要的命令是
mv。
在我的音乐目录中,我有每个艺术家和专辑的子文件夹。我想制作一个自动化脚本,进入每个子文件夹并将所有内容剪切并粘贴到我的主音乐目录中。脚本移动音乐后,我希望它删除空的子文件夹。 python 或 shell 脚本中的某些东西会很棒。有什么想法吗?
【问题讨论】:
mv。
find 命令将列出指定目录的子目录中的所有文件。所以:
find . -type f
这将产生一个文件名列表。要将所有这些文件移动到当前目录,
mv `find . -type f` .
最后,递归删除任何空的子目录,
find . -type d | xargs rmdir
如果您的任何文件或目录名称中包含空格,事情就会变得更加……有趣。但如果是这种情况,您可以将上述内容作为起点。
【讨论】:
- 开头。您应该能够告诉mv 使用mv -- `find . -type f` . 退出处理选项
mv 和find。对于包含空格的文件名(可能有哪些音乐文件退出),这将失败。使用find ... -exec mv ... \; 或find ... -print0 | xargs -0 mv ...
#!/bin/bash
cd ~/music # wherever your music directory is
mv */* .
rmdir * 2>/dev/null
【讨论】: