rsync:如何在没有错误的情况下复制可能不存在的文件

Hoo*_*ked 4 rsync make

我的 Makefile 中有一个命令可以从外部源同步我的书目。如果rsync因为目标文件不存在而失败,则rsync退出并显示错误 23。我可以通过将输出传递到来隐藏错误,/dev/null但这仍然会导致我的 Makefile 退出。如何"Hi"$(bib_dir)不存在的情况下输出以下 Makefile 代码?

sync_bibliography:
    rsync $(bib_dir) bib 2>/dev/null
    echo "HI"
Run Code Online (Sandbox Code Playgroud)

Mar*_*rco 5

您可以使用 OR 运算符||。如果前面的命令失败并返回false,则执行右侧的命令。例子:

false || echo "The previous command failed"
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下

rsync $(bib_dir) bib 2>/dev/null || echo "HI"
Run Code Online (Sandbox Code Playgroud)