递归查找最新的 mp3 文件并将其查询到音频播放器
Recursively find and enque latest mp3 files to audio player
我经常将新的 mp3 添加到深度嵌套的 collection 文件夹中。虽然我可以 re-add 整个 collection 到我的音频播放器大胆,但我喜欢在列表末尾添加最新的内容。
如何在我的 collection 中自动找到最新的歌曲并将它们加入现有列表?
或者如何只将最新的复制到我的 mp3 播放器?
将最新的 400 个 mp3 文件复制到一个文件夹中:
find . -type f -iname '*.mp3' -printf '%T@ %c="%p"\n' | sort -k 1nr,1 -k 7 | cut -d'=' -f2- | head -n 400 | xargs -I {} cp {} /media/mp3player
向 Audacious 查询最新的 150 mp3,最新的在列表末尾
find . -type f -iname '*.mp3' -printf '%T@ %c="%p"\n' | sort -k 1nr,1 -k 7 | cut -d'=' -f2- | head -n 150 | tac | xargs -I {} audacious -e {}
解释:
- 在当前文件夹中递归查找扩展名为 mp3 的文件 (.)
- 在行首打印带有时间戳的结果
- 对行进行排序(按时间戳)
- 切断时间戳
- 取前 150 行
- 反转行(将最新歌曲放在播放列表的最后)
- 对于每个请求 Audacious 进行查询
我经常将新的 mp3 添加到深度嵌套的 collection 文件夹中。虽然我可以 re-add 整个 collection 到我的音频播放器大胆,但我喜欢在列表末尾添加最新的内容。
如何在我的 collection 中自动找到最新的歌曲并将它们加入现有列表? 或者如何只将最新的复制到我的 mp3 播放器?
将最新的 400 个 mp3 文件复制到一个文件夹中:
find . -type f -iname '*.mp3' -printf '%T@ %c="%p"\n' | sort -k 1nr,1 -k 7 | cut -d'=' -f2- | head -n 400 | xargs -I {} cp {} /media/mp3player
向 Audacious 查询最新的 150 mp3,最新的在列表末尾
find . -type f -iname '*.mp3' -printf '%T@ %c="%p"\n' | sort -k 1nr,1 -k 7 | cut -d'=' -f2- | head -n 150 | tac | xargs -I {} audacious -e {}
解释:
- 在当前文件夹中递归查找扩展名为 mp3 的文件 (.)
- 在行首打印带有时间戳的结果
- 对行进行排序(按时间戳)
- 切断时间戳
- 取前 150 行
- 反转行(将最新歌曲放在播放列表的最后)
- 对于每个请求 Audacious 进行查询