检查目录中文件是否存在对应MD5文件并返回符合条件的文件名
批量检测目录中存在对应MD5哈希文件的目标文件
需求说明
从指定目录中筛选出所有存在同名.md5后缀哈希文件的原文件(例如:若abc.bin存在对应的abc.bin.md5,则返回abc.bin)。
快速实现方案
Linux/macOS 命令行
直接执行以下命令,替换/path/to/your/directory为目标目录路径:
find /path/to/your/directory -type f ! -name "*.md5" -exec sh -c 'test -f "$1.md5" && echo "$1"' _ {} \;
- 逻辑:遍历目录下所有非
.md5文件,检查是否存在同名.md5文件,符合条件则输出原文件名。
Windows CMD 命令
创建.bat脚本或直接在CMD中执行(替换C:\path\to\your\directory为目标目录):
@echo off set "target_dir=C:\path\to\your\directory" for %%f in ("%target_dir%\*") do ( if not "%%~xf"==".md5" ( if exist "%%~f.md5" echo %%~nxf ) )
- 逻辑:遍历目录文件,排除
.md5后缀文件,校验对应哈希文件是否存在,存在则输出原文件名。
Python 跨平台脚本
适合需要集成到自动化流程或跨平台使用的场景:
import os def get_files_with_md5(directory): valid_files = [] for entry in os.scandir(directory): # 跳过目录和MD5文件 if entry.is_dir() or entry.name.endswith('.md5'): continue # 检查对应MD5文件是否存在 md5_file_path = os.path.join(directory, f"{entry.name}.md5") if os.path.exists(md5_file_path): valid_files.append(entry.name) return valid_files # 替换为你的目标目录路径 target_directory = "/path/to/your/directory" # Windows路径示例:target_directory = r"C:\Users\YourName\Documents\Files" result = get_files_with_md5(target_directory) if result: print("符合条件的文件:") print("、".join(result)) else: print("未找到存在对应MD5哈希文件的目标文件")
- 测试验证:若目录包含
abc.bin、abc.bin.md5、efg.bin、qwerty.bin、qwerty.bin.md5、xyc.bin,运行后将输出abc.bin、qwerty.bin。
内容的提问来源于stack exchange,提问作者stack overflow
相关产品推荐
相关产品推荐

