gpt4 book ai didi

linux - 使用 bash shell 脚本比较不同目录中的文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:58 25 4
gpt4 key购买 nike

<分区>

我创建了一个脚本,它将比较不同目录中的两个文件(rpmsnewrpms)。这两个目录由文件组成。在 rpms/ 端是旧版本文件,在 newrpms/ 端是更新的文件。所以在这个脚本中,这样做的主要目标是比较目录中的文件,如果有相同名称的文件,则删除旧文件并将其替换为更新后的文件。

rpms/ -- 该目录下的文件

firefox-24.5.0-1.el5_10.i386.rpm
firefox-24.5.0-1.el5_10.x86_64.rpm
java-1.6.0-openjdk-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm
java-1.6.0-openjdk-demo-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm
java-1.6.0-openjdk-devel-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm
java-1.6.0-openjdk-javadoc-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm
java-1.6.0-openjdk-src-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm
java-1.7.0-openjdk-1.7.0.55-2.4.7.1.el5_10.x86_64.rpm
java-1.7.0-openjdk-debuginfo-1.7.0.55-2.4.7.1.el5_10.x86_64.rpm
java-1.7.0-openjdk-devel-1.7.0.55-2.4.7.1.el5_10.x86_64.rpm
java-1.7.0-openjdk-javadoc-1.7.0.55-2.4.7.1.el5_10.x86_64.rpm

newrpms/ -- rpms/目录下需要替换旧文件的更新文件

firefox-25.5.0-1.el5_10.i386.rpm
firefox-25.5.0-1.el5_10.x86_64.rpm
java-1.6.0-openjdk-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm
java-1.6.0-openjdk-demo-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm
java-1.6.0-openjdk-devel-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm
java-1.6.0-openjdk-javadoc-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm
java-1.6.0-openjdk-src-1.6.0.0-5.1.13.3.el5_10.x86_64.rpm

请看下面的脚本。

for i in $(\ls -d ./rpms/*);
do diff ${i} newrpms/;
done

对于上面的代码,没有任何反应。谁能帮我解决我的问题。我想要的只是比较两个目录并获得相同的文件,当且仅当 rpms/ 目录中没有与 newrpms/ 相同的文件时将它从 newrpms/ 移动到 rpms/ 是非常容易理解的,如果它们具有相同的文件名但只有一小部分不相同的话。检查它是最新的。例如。

firefox-24.5.0-1.el5_10.i386.rpm --> in the rpms/
firefox-25.5.0-1.el5_10.i386.rpm --> in the newrpms/

所以最新的一个在 newrpms/ 中。删除 rpms/ 中的 firefox-24.5.0-1.el5_10.i386.rpm 并移动 firefox-25.5.0-1.el5_10.i386 .rpmrpms/

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