我正在编写一个bash脚本来将文件从远程服务器复制到我的本地计算机.我需要检查文件是否可用,所以如果不存在,我可以采取替代措施.
我知道如何测试是否存在本地文件,但是,使用scp会使事情变得复杂.常识告诉我,一种方法是尝试scp文件无论如何,并检查scp命令的返回代码.这是正确的方法吗?
如果是,我如何测试scp调用的返回码?
use*_*419 10
使用ssh +嵌入cmd行的一些shell代码; 在文件传输失败之前需要做出决定时使用此方法;
ssh remote-host 'sh -c "if [ -f ~/myfile ] ; then gzip -c ~/myfile ; fi" ' | gzip -dc > /tmp/pkparse.py
Run Code Online (Sandbox Code Playgroud)
如果你想传输目录,你可能想要"tar" - 首先
如果你想使用scp你可以检查返回码如下:
if scp remote-host:~/myfile ./ >&/dev/null ; then echo "transfer OK" ; else echo "transfer failed" ; fi
Run Code Online (Sandbox Code Playgroud)
它真的取决于你知道文件是否存在的重要性; 在转移开始之前(使用ssh + sh)或在完成转移之后.