【问题标题】:python or bash Code to empty subfolder contents into main folder and delete empty subfolderspython或bash代码将子文件夹内容清空到主文件夹并删除空子文件夹
【发布时间】:2012-07-14 02:41:11
【问题描述】:

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

【问题讨论】:

  • 剪切?粘贴?你想要的命令是mv

标签: python bash shell


【解决方案1】:

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

find . -type f

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

mv `find . -type f` .

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

find . -type d | xargs rmdir

如果您的任何文件或目录名称中包含空格,事情就会变得更加……有趣。但如果是这种情况,您可以将上述内容作为起点。

【讨论】:

  • find 命令非常适合生成文件列表,但是当我尝试移动它们时,我收到此错误“mv: invalid option -- 'W' Try `mv --help' 获取更多信息。”
  • 听起来您的文件名称以- 开头。您应该能够告诉mv 使用mv -- `find . -type f` . 退出处理选项
  • 不要在命令替换中使用mvfind。对于包含空格的文件名(可能有哪些音乐文件退出),这将失败。使用find ... -exec mv ... \;find ... -print0 | xargs -0 mv ...
【解决方案2】:
#!/bin/bash
cd ~/music    # wherever your music directory is
mv */* .
rmdir * 2>/dev/null

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    相关资源
    最近更新 更多