如何在 OS X 上将文件从递归隐藏文件夹移动到父文件夹

如何在 OS X 上将文件从递归隐藏文件夹移动到父文件夹

我有一个 5 级深的音乐目录,每个文件夹都有音乐和图像文件,还有一个名为 .unwanted 的隐藏子文件夹,我想将名为 .unwanted 的文件夹中的隐藏文件向上移动一级到其各自的父文件夹,如果文件名已经存在,则给出连续的名称。它有 90 GB,9,000 个音乐文件,不可能手动完成。我是 bash 的新手,我所做的只是复制和粘贴一些代码,同时只更改文件夹名称。它看起来像这样,

$ find . -ipath ".unwanted/.*" -type f -print0 | xargs -0 -I{} sh -c 'mv "{}" "$(dirname "{}")"/..'

但收到错误“没有这样的目录

[Dir A.的结构]

答案1

下面的代码应该可以满足您的要求。您必须在 find 命令中输入音乐文件夹的绝对路径。不要使用点。mv 中的 -n 选项是非标准的,但可以防止覆盖文件。

    find /absolute/path/to/music/folder -type d -name ".unwanted" -exec ksh -c 'cd "{}"; mv -n ./* ../' \;

相关内容