一行、適切な引用
ssh remote_host test -f "/path/to/file" && echo found || echo not found
上記の回答に加えて、簡単な方法があります:
ssh -q $HOST [[ -f $FILE_PATH ]] && echo "File exists" || echo "File does not exist";
-q
はサイレント モードで、警告とメッセージを抑制します。
@Mat が述べたように、このようなテストの利点の 1 つは、-f
を簡単に交換できることです。 好きなテスト演算子:-nt
、 -d
、 -s
など...
テスト オペレーター: http://tldp.org/LDP/abs/html/fto.html
簡単なアプローチは次のとおりです。
#!/bin/bash
USE_IP='-o StrictHostKeyChecking=no [email protected]'
FILE_NAME=/home/user/file.txt
SSH_PASS='sshpass -p password-for-remote-machine'
if $SSH_PASS ssh $USE_IP stat $FILE_NAME \> /dev/null 2\>\&1
then
echo "File exists"
else
echo "File does not exist"
fi
動作させるには、マシンに sshpass をインストールする必要があります。
これ以上簡単なことはありません :)
ssh host "test -e /path/to/file"
if [ $? -eq 0 ]; then
# your file exists
fi
dimo414 で提案されているように、これは次のように折りたたむことができます:
if ssh host "test -e /path/to/file"; then
# your file exists
fi