使用bash脚本删除重复文件

我在 path1 和 path2 分别有两个文件。如果两个文件的内容相同,我想删除 path2 处的文件。

我试图用

cmp -s path1 path2 rm path2 ||echo "files are different"

但它不起作用。为什么不?

回答

你缺少一个&&.

cmp -s path1 path2 && rm path2 || echo "files are different"

我会在这里使用if/else而不是&&/ ||。如果rm碰巧失败,上面的代码会错误地显示“文件不同”。使用if/else避免了这个问题。

if cmp -s path1 path2; then
    rm path2
else
    echo "files are different"
fi

(作为一般规则,只有在之后的命令总是成功时才使用&&/ 。如果有可能失败,请坚持使用明确的/ 。)||&&ifelse


以上是使用bash脚本删除重复文件的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>