使用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

(一般情况下,如果&&之后的命令总是成功,则只使用&&/||。如果有可能失败,请坚持使用显式的if/else

相关内容

  • 没有找到相关文章

最新更新