gpt4 book ai didi

linux - 本地/远程服务器中相同文件上的不同md5sum

转载 作者:行者123 更新时间:2023-12-02 14:27:52 24 4
gpt4 key购买 nike

我想检查本地计算机上的文件列表的md5sum,并将其与我在远程服务器上复制的相同文件的md5sum进行比较。

如果我分别在每台机器的终端中检查:

# local
find . -type f -name "*.fastq.gz" -exec md5sum {} + | awk '{print $1}' | sort | md5sum
> 5a58015f2abec5bb1ee3e6a003ec4beb -

# remote
find . -type f -name "*.fastq.gz" -exec md5sum {} + | awk '{print $1}' | sort | md5sum
> 5a58015f2abec5bb1ee3e6a003ec4beb -

现在,如果我将这些命令运行到bash脚本中:
path_local="path/to/data/"
server_remote="user@ip.adress"
path_remote="path/to/data/"

local_md5sum=$(find ${path_local} -type f -name "*.fastq.gz" -exec md5sum {} + | awk '{print $1}' | sort | md5sum)
echo "local_md5sum : ${local_md5sum}"
remote_md5sum=$(ssh ${server_remote} "find ${path_remote} -type f -name '*.fastq.gz' -exec md5sum {} + | awk '{print $1}' | sort | md5sum")
echo "remote_md5sum : ${remote_md5sum}"

> local_md5sum : 5a58015f2abec5bb1ee3e6a003ec4beb -
> remote_md5sum : 4a32580085edf9e49e00c46920517dd1 -

我在脚本中看到的唯一区别是,我对 '*.fastq.gz'使用了简单的引号,而不是在上一个命令中使用了双引号。但是我必须或者我收到 find: paths must precede expression错误。

为什么我没有相同的md5sum,我该如何解决?

最佳答案

您遇到了一个报价问题:在“远程服务器”部分,您需要转义$,如下所示:awk '{print \$1}':

结果:

remote_md5sum=$(ssh ${server_remote} "find ${path_remote} -type f -name '*.fastq.gz' -exec md5sum {} + | awk '{print \$1}' | sort | md5sum")

关于linux - 本地/远程服务器中相同文件上的不同md5sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60079463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com