复制随机选择的文件

复制随机选择的文件

我的汽车音响无法播放我的所有 mp3(5k 文件总计 >32GB)。可能存在某种解析或文件系统问题,但我无法弄清楚(我找不到调试输出,而且我似乎在用户手册指定的格式限制之内),所以它只能粗略地播放艺术家[0-9A-C].*和一些D.*.

我只想“随机全部”播放我的所有音乐,所以我愿意尝试的下一件事是选择我的音乐的一些随机子集并将其复制到 USB 记忆棒,然后每周或每月左右重复该过程。我可以做一些“简单”的事情,比如

rm -rf /media/foo/*;寻找 。 -类型 f |嘘|头-1000 |读取行时;执行 mkdir -p /media/foo/"${line%/*}"; rsync -av "$line" /media/foo/"$l​​ine";完毕
但我更喜欢一些更用户友好的东西,因为它不会是我运行这个命令,当然,如果不必删除运行之间保留的文件然后重新复制(我的第一次使用该命令运行需要 17 分钟)。有没有更好的工具或流程?

(顺便说一句,如果你知道一个可以播放 oggs 的现成系统,尤其是我可以从像 Crutchfield 这样的零售商那里购买的系统,以及适用于我的汽车的适配器套件,我会非常感兴趣。)

答案1

没有什么灵丹妙药,但你可以这样做,以避免再次复制已经存在的文件:

首先在硬盘驱动器上创建播放列表(应该相当快,特别是如果您有 SSD):

$ rm -rf /tmp/playlist;  mkdir /tmp/playlist
$ find . -type f | shuf | head -1000 | tar -T - -cf - | (cd /tmp/playlist; tar -xvf -)

然后使用rsync同步U盘:

$ rsync -av --delete  /tmp/playlist /media/foo/

通过一点 udev 黑客攻击,您可以在插入 USB 记忆棒时自动发生这种情况,每周预先生成播放列表以加快速度(crontab),在发生时显示一个漂亮的进度条,甚至可能对用户友好=)

相关内容