Sftp
如何使用 sftp 刪除多個文件
這篇文章是關於在設置 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