我正在下面的bash脚本,我需要上传超过10 MB的特定文件:LFTP把文件放在特定的目录下?
#!/bin/sh
FTP_HOST=ftp.ftphost.com
FTP_USER=myftpuser
FTP_PASS=securepassword
[[ -n "$1" ]] || { echo "Usage: findlarge [PATHNAME]"; exit 0 ; }
FILES=`find "$1" -type f -size +10000k -printf '%p;'`
OLD_IFS="$IFS"
IFS=";"
FILES_ARRAY=($FILES)
IFS="$OLD_IFS"
for fl in "${FILES_ARRAY[@]}"
do
INVERSE=`${fl//\/var\/www\/html/\/public_html}`
lftp -u $FTP_USER,$FTP_PASS -e "cd '${INVERSE}'; put '${fl}';quit" $FTP_HOST
done
它用于需要上传到自己的服务器,它正尝试做更大的文件一个特定的CDN并且我不知道如何继续的是主机端的文件位于/var/www/html/,但远程服务器需要将它们置于/public_html/。我在远程服务器上需要与我在主机服务器上相同的文件结构。
我遇到的问题是$INVERSE仍然包括实际的文件名和路径..我需要一种方法来修剪INVERSE变量的文件名,以便我可以正确地将文件放在正确的目录中。
有谁知道一个正则表达式语句,可以采取类似的:
/public_html/path/to/file/filename.zip
,并更改为
/public_html/path/to/file/
2012-10-03
Peter