播放
本目录子孙目录下的所有视频文件
要使用 find 结合 mpv 播放当前目录及子目录下的所有指定视频文件(mp4、avi、wmv、rmvb),可以执行以下命令:
find . -type f \( -iname "*.mp4" -o -iname "*.avi" -o -iname "*.wmv" -o -iname "*.rmvb" \) -exec mpv {} +
命令解释:
find .: 从当前目录开始搜索。
-type f: 只查找文件(不包括目录)。
\( ... \): 使用括号分组,结合多个条件。
-iname "*.mp4": 查找扩展名为 .mp4 的文件,-iname 表示忽略大小写。
-o: 表示“或”,用于连接多个文件扩展名条件。
-exec mpv {} +: 将查找到的文件传递给 mpv 播放,+ 表示将所有文件一次性传递给 mpv,以避免多次调用。
注意事项:
- 确保
mpv 已安装(可用 mpv --version 检查)。
- 如果想按文件名排序播放,可以添加
sort:
find . -type f \( -iname "*.mp4" -o -iname "*.avi" -o -iname "*.wmv" -o -iname "*.rmvb" \) | sort | xargs mpv
- 如果需要随机播放,可以结合
shuf:
find . -type f \( -iname "*.mp4" -o -iname "*.avi" -o -iname "*.wmv" -o -iname "*.rmvb" \) | shuf | xargs mpv
额外提示:
- 如果文件路径包含空格,
xargs 方式可能需要调整为:
find . -type f \( -iname "*.mp4" -o -iname "*.avi" -o -iname "*.wmv" -o -iname "*.rmvb" \) -print0 | sort -z | xargs -0 mpv
这里 -print0 和 -0 确保正确处理包含空格的文件名。
- 如果只需要列出文件而不播放,可以去掉
-exec mpv {} +:
find . -type f \( -iname "*.mp4" -o -iname "*.avi" -o -iname "*.wmv" -o -iname "*.rmvb" \)
运行上述命令后,mpv 会依次播放找到的视频文件。