Sftp

如何使用 sftp 刪除多個文件

  • January 5, 2017

這篇文章是關於在設置 sftp 無密碼連接時從遠端伺服器中刪除多個文件的。我有如下程式碼。當我將變數設置為時,只有變數中的第一個文件$file_list被刪除,

$file_list="file1 file2"

sftp $USER@$HOST
rm $file_list
quit
SFTP-Session

我什至嘗試在提示模式下執行命令。

sftp $USER@$HOST
rm file1 file2

但是,我仍然看到只有 file1 被刪除。

我不確定我是否缺少任何基本命令。我嘗試了mdelete/ mdel/ ,但在 sftp 提示視窗mrm中被拒絕為無效命令。

這是可以添加到 bash 腳本的一種可能的解決方案。這並不理想,因為它將為每個文件建立新的連接。

#!/bin/bash
# set variables
USER="username"
HOST="hostname"
file_list="file1 file1 file3 file4"
# delete each file
for file in $file_list; do
   echo "rm $file" | sftp $USER@$HOST
done
exit 0

**這個單線好多了!**file1-9 是要刪除的文件名,如果你願意,可以使用變數,它是一樣的。

for file in file1 file2 file3 file4 file5 file6 file7 file8 file9; do echo -e "rm $file" >> sftp_batch; done; sftp -b sftp_batch username@hostname; rm sftp_batch

引用自:https://unix.stackexchange.com/questions/165919