bash - Ubuntu bash 脚本 - 搜索所有文件夹以运行视频转换

标签 bash shell ubuntu

我最近接触了 Google Chromecast,并意识到我目前的媒体几乎都不能“很好”地使用它(大多数是带有 ac3 音频的 mkv)

我已经能够创建一个简单的 bash 脚本来转换文件夹中的所有文件......但我有数百个文件夹,所以我希望让这项工作递归,所以我只需要运行一次

当前脚本

for i in *.mkv; do
avconv -i "$i" -c:v copy -c:a aac -strict experimental "${i/.mkv/.mp4}"
done

我想要做的是为此添加逻辑,以便它可以搜索两个子文件夹,转换找到的文件,将转换后的文件移动到根目录并删除原始文件

IE
 /Movies/convert.script
 /Movies/Movie1/this_movie.mkv
 /Movies/Movie2/that_movie.mkv
 /Movies/Movie3/another_movie.mkv

变成
 /Movies/convert.script
 /Movies/this_movie.mp4
 /Movies/that_movie.mp4
 /Movies/another_movie.mp4

最佳答案

要搜索子文件夹,您可以使用 find

find -name '*.mkv' -exec /path/to/convert-movie.sh {} \;

/path/to/convert-movie.sh 在哪里
#!/bin/bash
avconv -i "$1" -c:v copy -c:a aac -strict experimental "${1/.mkv/.mp4}"

关于bash - Ubuntu bash 脚本 - 搜索所有文件夹以运行视频转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29558324/

相关文章:

mysql - 升级到 ubuntu 16.04 后无法在 MySQL 上迁移 django 数据库

bash - 检查curl增量(--continue-at)下载是否成功

linux - find 命令只搜索非隐藏目录

c - 将 ASCII 字节流发送到管道

windows - 如何使图标出现在窗口自定义 shell 条目旁边?

php - 在此范围内未声明“UnicodeString”

c++ - 使用 PyTorch、HElib 和 OpenCV 编译 C++ 程序时出现问题

linux - ssh 隧道命令输出到文件

linux - 在 BASHRC 与命令行中启动后台进程之间的区别

regex - 在 sed 语句中组合多个正则表达式