我在path1和path2上分别有两个文件。如果两个文件的内容相同,我想删除path2中的文件。
我尝试使用以下工具来实现此目的
cmp -s path1 path2 rm path2 ||echo "files are different"但它不起作用。为什么不行?
发布于 2021-03-08 11:34:59
你少了一个&&。
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。)
https://stackoverflow.com/questions/66523899
复制相似问题