LFTP 排除文件扩展名

LFTP 排除文件扩展名

我正在尝试使用 lftp 镜像目录,但我不想下载像 .mp4 和 .swf 这样非常大的文件类型。但我在正则表达式方面遇到了麻烦 - 而且看起来也像排除全局。他们俩都下载了所有文件。

我尝试过的:

/usr/local/bin/lftp -u user,pass -e 'mirror -x ^(\.mp4|\.swf)$ $src $dest' ftp.host

&&

/usr/local/bin/lftp -u user,pass -e 'mirror -X swf $src $dest' ftp.host

答案1

在第一种情况下,您必须引用竖线(|),因为在lftp内部它也是一个特殊符号(也使用双引号来插入src和dest变量,引用反斜杠和美元符号以防止它们被shell解释):

/usr/local/bin/lftp -u user,pass -e "mirror -x '^(\\.mp4|\\.swf)\$' $src $dest" ftp.host

在第二种情况下,您必须使用 glob 模式,如下所示:

/usr/local/bin/lftp -u user,pass -e "mirror -X *.mp4 -X *.swf $src $dest" ftp.host

无论如何,我建议先手动测试镜像命令,然后再将其自动化。

相关内容