我是 FileZilla 的长期用户。现在,由于缺乏效率,我正在从 Linux 桌面切换到命令sftp
行到 Linux 服务器。
该sftp put
命令非常适合上传。但是,与 FileZilla 不同的是,覆盖服务器上的现有文件时不会出现确认提示。我当然担心任何意外覆盖。有没有办法sftp
在覆盖之前要求确认?
答案1
不,put
命令sftp
无法向您提供交互式提示以确认覆盖现有文件。它假设您知道自己在做什么。
如果您想确保上传文件时不会覆盖现有文件,请使用该sftp
命令mkdir
在远程主机上创建一个目录并cd
进入该目录,然后再将文件上传到该新的空目录中。
例如,
uploaddir=$( date +upload_%F ) # i.e. something like "upload_2020-05-18"
sftp remote <<END_SFTP
cd some/remote/path
mkdir $uploaddir
cd $uploaddir
put myfile
END_SFTP
该mkdir
命令将失败如果已经存在一个与您尝试创建的目录同名的目录。当sftp
运行非交互式批处理脚本时,如上所述,脚本将在此时终止。