查找并删除播放时间少于 3 分钟的音频文件

smc*_*smc 4 linux find audio

有没有办法递归查找并删除所有播放时间少于 3 分钟的音频文件(MP3 文件)?

考虑我混合有多种格式文件(例如目录、文本文件和mp3 文件)的情况。

ste*_*eve 5

这是一种方法。对每个mp3文件运行mediainfo,如果短于3分钟,则将其删除。

#!/bin/bash
for FILE in $(find . -type f -name \*.mp3); do
    [[ $(mediainfo --Output='Audio;%Duration%' "${FILE}") -lt "180000" ]] && rm "${FILE}"
done
Run Code Online (Sandbox Code Playgroud)

或者对于喜欢俏皮话的人来说:

find . -type f -name \*.mp3 -exec bash -c '[[ $(mediainfo --Output="Audio;%Duration%" $1) -lt "180000" ]] && rm "$1"' -- {} \;
Run Code Online (Sandbox Code Playgroud)