【嵌入式开发 Linux 常用命令系列 7.3 -- md5sum 命令介绍 】
2023-12-14 22:31:48
文章目录
md5sum 命令介绍
要在shell脚本中判断两个不同目录下的文件的MD5值是否相等,并在不相等的情况下将目录A中的文件复制到目录B中,你可以编写一个脚本如下:
#!/bin/bash
# 定义文件路径
fileA="/path/to/directoryA/filename"
fileB="/path/to/directoryB/filename"
# 检查文件是否存在
if [[ ! -f "$fileA" ]]; then
echo "File $fileA does not exist."
exit 1
fi
# 计算两个文件的MD5值
md5A=$(md5sum "$fileA" | cut -d ' ' -f1)
md5B=$(md5sum "$fileB" | cut -d ' ' -f1)
# 比较MD5值
if [[ "$md5A" != "$md5B" ]]; then
# MD5值不相同,将文件从目录A复制到目录B
cp "$fileA" "$fileB" echo "File has been copied from $fileA to $fileB."
else
echo "Files are the same, no action taken."
fi
确保将 /path/to/directoryA/filename
和 /path/to/directoryB/filename
替换为你需要比较的实际文件路径。
这个脚本的工作流程如下:
- 定义两个文件的路径。
- 检查文件A是否存在,如果不存在,脚本将打印一条消息并退出。
- 使用
md5sum
命令分别计算这两个文件的MD5值。 - 使用
cut
命令提取MD5值(md5sum
的输出通常是两部分,第一部分是MD5值,第二部分是文件名)。 - 比较两个文件的MD5值。
- 如果MD5值不相同,则使用
cp
命令将文件从目录A复制到目录B,并打印一条消息。 - 如果MD5值相同,则打印一条消息,不执行任何操作。
你可以将这个脚本保存到一个文件中,比如叫 copy_if_diff.sh
,然后给予执行权限:
chmod +x copy_if_diff.sh
之后就可以执行这个脚本了。注意,这个脚本没有处理目录B中不存在文件的情况。如果文件B不存在,md5sum
将会返回一个错误。你可能需要在计算MD5之前添加额外的检查来处理这种情况。
文章来源:https://blog.csdn.net/sinat_32960911/article/details/134934643
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!