用于“智能”复制的 Shell 脚本

用于“智能”复制的 Shell 脚本

我正在编写一个 shell 脚本。背景:我用我的 Mac 录制了很多广播歌曲。每首歌曲都是*.eyetv我 Mac 上的一个“文件”。实际上,这些“文件”只是文件夹,其中包含一个.mpg文件名隐秘的文件00000000144ad5e9.mpg和一些元数据。

录音被组织在几个文件夹中,每个文件夹包含大约 20 个录音(一张音频 CD)。所有这些文件夹都位于 NAS 上。

我正在尝试编写一个脚本,在我的 Mac 上创建文件夹,然后将 mpg 复制到其中重命名将它们更改为其父目录的名称。

NAS 上示例歌曲“ Set fire to the Rain”的目录结构:(/music/recordings1/Set Fire to the Rain - ADELE.eyetv/00000000144ad5e9.mpg以及 EyeTv 的一些元数据)

复制后硬盘上所需的结构:/home/me/music/recordings1/Set fire to the Rain.mpg

到目前为止我的代码(不起作用):

dirname=$(basename `pwd | tr ' ' '_'`.eyetv)
mkdir ~/Musik/$dirname
find . -name '*.eytv' | xargs -0 -i cd {} | find . -name ????????????????.mpg -print0 | xargs -0 -i cp -v {} ~/Musik/$dirname/$(basename `pwd | tr ' ' '_'`.mpg)

问候并提前致谢,Markus

答案1

您可以使用mcp

mcp -v '/music/recordings1/* - *.eyetv/*.mpg' '/home/me/music/recordings1/#1.mpg'

mcp包含在mmv包。默认情况下,mmvUbuntu 中未安装它,但您可以使用以下命令从终端安装它:

sudo apt-get install mmv

man mmv了解更多信息。

相关内容