用ssh检查远程主机上是否存在文件

我想检查远程主机上是否存在某个文件。 我试过这个:

$ if [ ssh reg@localhost -p 19999 -e /home/reg/Dropbox/New_semiosNET/Research_and_Development/Puffer_and_Traps/Repeaters_Network/UBC_LOGS/log1349544129.tar.bz2 ] then echo "okidoke"; else "not okay!" fi
-sh: syntax error: unexpected "else" (expecting "then") 

这是一个简单的方法:

if ssh $HOST stat $FILE_PATH > /dev/null 2>&1
            then
                    echo "File exists"
            else
                    echo "File does not exist"

fi

除了上面的答案之外,还有一个简单的方法来做到这一点:

ssh -q $HOST [[ -f $FILE_PATH ]] && echo "File exists" || echo "File does not exist";

-q是安静模式,它会抑制警告和消息。

正如@Mat提到的,像这样测试的一个好处是你可以轻松地将-f替换为你喜欢的任何测试操作符: -nt-d-s等等......

测试操作员: http //tldp.org/LDP/abs/html/fto.html


不能比这更简单:)

ssh host "test -e /path/to/file"
if [ $? -eq 0 ]; then
    # your file exists
fi
链接地址: http://www.djcxy.com/p/97125.html

上一篇: check if file exists on remote host with ssh

下一篇: Terminating SSH session executed by bash script