Bash Shell sftp在创建之前检查目录是否存在

时间:2018-07-20 08:07:36

标签: bash shell sftp

在创建目录之前,我只想通过sftp(而不是ssh)检查目录是否存在。 到目前为止,我发现的唯一解决方案是使用ssh,但由于权限问题,我仅需要使用sftp-有人知道吗?

sftp_put () {
  sftp -oidentityfile=/home/user/.ssh/host_usersftp usersftp@$1 <<EOF
  -- Add a check here e.g -- IF exist $2 ( echo $2 exists ) ELSE ( echo create $2 )
  mkdir $2
  cd $2
  put $3
  EOF
}

2 个答案:

答案 0 :(得分:1)

如果您尝试创建已经存在的目录,则不带sftp

-b只会显示一条非致命的警告消息。 (对于-b,您需要在-mkdir前面加一个破折号,以使脚本在命令失败时不会中止。对于非交互使用,-b可能是个好主意。)

答案 1 :(得分:1)

echo "chdir my_test_dir" | sftp -b - -oidentityfile=/home/user/.ssh/host_usersftp usersftp@$1
if [ $? -eq 0 ]
then
    echo "my_test_dir exists"
else
    echo "create my_test_dir"
fi
相关问题