用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