播放
本目录子孙目录下的所有视频文件
要使用 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
会依次播放找到的视频文件。