bash - 仅当 rar 文件位于同一文件夹中时才查找 mkv 文件?
问题描述
我可以使用 find 命令列出存在 .rar 的文件夹中的所有 .mkv 文件吗
例子:
TV/Show1/
TV/Show1/file1.mkv
TV/Show2/
TV/Show2/file2.rar
TV/Show2/file2.mkv
输出
TV/Show2/file2.mkv
我想为电视内的所有文件夹递归查找并列出所有此类文件。那可能吗?
解决方案
find . -type -f -name '*.mkv' -exec bash -c '[ -f "${1%.*}.rar" ] && echo "$1"' _ {} \;
find
将找到所有 .mkv 文件并将其传递给 shell 脚本的参数 1
[ -f "${1%.*}.rar" ] && echo "$1"
Shell 脚本将从作为参数 1 传递的 .mkv 文件中去除点扩展名
${1%.*}
,然后检查去除的名称 .rar 是否存在[ -f filepath ]
。当 .rar 存在时,它将echo
是参数 1 中的 .mkv 文件的名称。
推荐阅读
- javascript - 离子 SQLite ; 无法打开数据库
- logging - 如何使用 Terraform 11.14 启用 Azure Key Vault 日志记录?
- ios - 如何从 Firestore 返回数组中的数据?
- java - 如何启用单击按钮格式,并使用窗口增加文本大小
- python - 如何检查我的停用词删除算法是否有效?
- python - 遍历目录中的所有文件夹和文件
- angular - 如何通过 SPA 中的组件重定向到 payulatam
- discord.js - 如何修复“无法读取未定义的属性‘toLowerCase’”
- html - div元素不能并排放置的问题
- mysql - 在 SQL 嵌套集层次结构中查找链中所有父项的集合以获取多个提示