2 年 后

播放

本目录子孙目录下的所有视频文件

要使用 find 结合 mpv 播放当前目录及子目录下的所有指定视频文件(mp4、avi、wmv、rmvb),可以执行以下命令:

find . -type f \( -iname "*.mp4" -o -iname "*.avi" -o -iname "*.wmv" -o -iname "*.rmvb" \) -exec mpv {} +

命令解释:

  1. find .: 从当前目录开始搜索。
  2. -type f: 只查找文件(不包括目录)。
  3. \( ... \): 使用括号分组,结合多个条件。
  4. -iname "*.mp4": 查找扩展名为 .mp4 的文件,-iname 表示忽略大小写。
  5. -o: 表示“或”,用于连接多个文件扩展名条件。
  6. -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 会依次播放找到的视频文件。