首页 > 解决方案 > 仅当 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  

我想为电视内的所有文件夹递归查找并列出所有此类文件。那可能吗?

标签: bashubuntuterminalfind

解决方案


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 文件的名称。


推荐阅读