【发布时间】:2016-03-28 23:19:20
【问题描述】:
我已经搜索过很多主题,围绕着我想要完成的事情展开。我有超过 2,000 个 m4a 文件和 17,000 个 mp3。目录结构为/home/me/Music/MP3/Artist/Album/song.m4a。我想使用“查找”来发现 m4a 歌曲,将它们、他们的专辑目录和他们的艺术家目录移动到 /home/me/Music/M4A/Artist/Album/song。 m4a。我使用 mv -exec 开关没有成功,使用 basename 和/或 dirname 创建脚本也没有成功。父目录和祖父目录让我失望。移动文件本身不是问题,只需创建目录结构并移动文件。在零碎的努力中,我导出了文件列表find /home/me/Music/MP3 -name "*.m4a" >> dir.sh(部分原因是我想查看文件位置和歌曲数量)。然后我运行sed 's/MP3/M4A/g' dir.sh 用 M4A 替换 MP3。从 dir.sh 中删除此示例中的 song.m4a 将为我留下一个 Artist/Album 目录列表,以通过 mkdir 运行 while 循环:/home/me/Music/M4A/Metallica/Re-load/Metallica - The Unforgiven.m4a。不幸的是,这就是我被卡住的地方, dirname 产生一个'。'
【问题讨论】:
-
看看这里格式化你的问题:stackoverflow.com/editing-help
-
如果您包含解决问题的最佳尝试,它将更符合 StackOverflow 理念。通常,使用小型测试测试,并使用
echo mv ....直到您的目录名称正确。或者可能是cd .../MP3; find . -name '*.m4a' | xargs mv {} ../M4A(在提前制作了 M4A 目录之后)。祝你好运。 -
谢谢。我不确定发布失败的脚本是否合适。我尝试了很多不同的方法,它会在这里占用很多空间。我很高兴这个方向。
-
@Ergo :始终适当(并且礼貌(和预期);-) )发布您的代码。口头描述通常是模棱两可的,容易引起误解和相互矛盾的解释。包括小样本数据、所需输出、当前代码、输出和错误消息消除了大多数关于描述问题的问题。是有根据的!祝你好运。