satu baris, kutipan yang tepat
ssh remote_host test -f "/path/to/file" && echo found || echo not found
Selain jawaban di atas, ada cara singkat untuk melakukannya:
ssh -q $HOST [[ -f $FILE_PATH ]] && echo "File exists" || echo "File does not exist";
-q
adalah mode senyap, ini akan menekan peringatan dan pesan.
Seperti yang disebutkan @Mat, satu keuntungan dari pengujian seperti ini adalah Anda dapat dengan mudah menukar -f
untuk setiap operator pengujian yang Anda suka:-nt
, -d
, -s
dll...
Operator Uji: http://tldp.org/LDP/abs/html/fto.html
Berikut adalah pendekatan sederhana:
#!/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
Anda perlu menginstal sshpass di komputer Anda untuk menjalankannya.
Tidak bisa lebih sederhana dari ini :)
ssh host "test -e /path/to/file"
if [ $? -eq 0 ]; then
# your file exists
fi
Seperti yang disarankan oleh dimo414, ini dapat diciutkan menjadi:
if ssh host "test -e /path/to/file"; then
# your file exists
fi
Bagaimana cara menghitung pemanfaatan CPU dari suatu proses &semua proses anaknya di Linux?
cara mendapatkan jalur relatif direktori saat ini di kucing jantan dari lingkungan linux menggunakan java