如何将一些文件移动到它们的父目录?

如何将一些文件移动到它们的父目录?

我想将所有意外放入 flac 文件夹的 mp3 拉到它们的父文件夹中。

文件夹的深度无关紧要,我只想将匹配的文件向上移动一个目录。

以下是我选择文件的方法:

find . -path "*/flac/*" -name '*.mp3'

这适用于我的音乐文件夹,但我卡在这里。我找到的所有解决方案要么将文件移动到当前文件夹的父文件夹,要么需要一些固定结构。

答案1

尝试:

find . -path "*/flac/*" -name '*.mp3' -execdir mv -t ../ {} +

怎么运行的

  1. find .

    启动对当前目录进行操作的查找命令。

  2. -path "*/flac/*"

    仅选择flac路径中

  3. -name '*.mp3'

    仅选择扩展名为 的文件.mp3

  4. -execdir mv -t ../ {} +

    对于找到的任何文件,mv从文件所在的目录运行命令,并将文件移动到父目录。

    除了使这项特定任务变得简单之外,该选项-execdir还比传统-exec选项更安全。

简化

find . -path "*/flac/*.mp3" -execdir mv -t ../ {} +

相关内容