Bash ftp 备份并保留一些档案

Bash ftp backup and keep just some archives

美好的一天。我有一个重要的问题。我需要知道如何删除 ftp 服务器上的第一个文件。我的 ftp 服务器上有 5 个备份,名为 date.filename.tar.bz2。我正在制作第六个存档,但我需要 ftp-server 只保留最后 5 个备份。我可以做那样的事情

delfile=$(echo ls *.tar.bz2 | lftp $user:$pass@$host:/ | head -n1)

但我得到一个字符串:-rw------- 1 1001 1001 0 dec 14 hr:min filenmae.tar.bz2 而且我不能只输入 delete $delfile 就删除文件 我需要解析字符串并得到 filename.tar.bz2。 请帮忙,如何解析这个字符串? 我post我的脚本好理解

#!/bin/bash           
HOST=10.10.x.x                 
USER=ftpuser                  
PASSWORD=ftpuserpass
TEMP="/tmp/backup"
if [ ! -d "$TEMP" ]; then
    mkdir $TEMP
fi
fname="$(basename -- )"
tar -cvjf $TEMP/$today.$fname.tar.bz2 
x=$(echo ls *.tar.bz2 | lftp $USER:$PASSWORD@$HOST:/ | wc -l)
if [ "$x" -ge 5 ]; then              
#here is a trouble
#i need to do something like that
#delfile=$(echo ls *.tar.bz2 | lftp $USER:$PASSWORD@$HOST:/ | head -n1)
#ftp -inv $HOST <<EOF            
#user $USER $PASSWORD                                   
#delete $delfile                     
#bye                                   
#EOF
#but delfile gets a string -rw------- 1 1001 1001 0 Dec 14 17:55 test.tar.bz2
#and i don't now how to make it get just test.tar.bz2
else
ftp -inv $HOST <<EOF            
user $USER $PASSWORD                 
lcd $TEMP                  
mput *.tar.bz2                       
bye                                   
EOF
cd $TEMP 
rm *.tar.bz2
fi

编辑这一行:

delfile=$(echo ls *.tar.bz2 | lftp $USER:$PASSWORD@$HOST:/ | head -n1)

变成这样:

delfile=$(echo ls *.tar.bz2 | lftp $USER:$PASSWORD@$HOST:/ | head -n1|awk '{print $NF}')

您将在变量中包含文件名