lftp:上传文件时删除文件夹前缀

lftp:上传文件时删除文件夹前缀

我想通过命令行的 ftp 客户端将本地文件夹中的某些文件上传到远程文件夹远程传输协议

我想要的是 :

在我的本地计算机中,我确实有:

me@local $ tree
my-site
├── index.html
└── css/

当我访问 FTP 服务器时,我想要:

me@ftp_server $ tree
dev-site/
├── index.html
└── css/

我想做的是上传本地内容目录my-site到远程dev-site目录;但不是my-site目录本身。所以我只想上传文件并删除这个目录前缀名称。

我尝试过的:

我试过这个:

# On my local computer :
$ ls
my-site/
$ lftp -u username,passwd ftp.foobar.cmo -e "mirror -R -p my-site/ dev-site/ ; quit"

可悲的是,它上传到本地my-site目录到远程dev-site,例如:

# On my remote ftp server :
$ tree
dev-site/
└── my-site/
    ├── index.html
    └── css/

解决方法:

如果我这样做,它就会按预期工作:

# On my local computer :
$ cd my-site/
$ lftp -u username,passwd ftp.foobar.cmo -e "mirror -R -p ./ dev-site/ ; quit"

但我想避免这种肮脏的事情cd

问题:

有没有办法在上传文件时删除目录前缀,以便上传目录的内容而不是目录本身?

答案1

如果您在目标 ftp 目录上进行镜像时没有最后一个斜杠,那又如何呢?

lftp -u user,password -e 'mirror -R -p /home/user/my-site dev-site ; quit' ftp.foo.cmo

使用 lftp 版本 3.7.3 在这里工作:

adminnicolas@fw1:~$ lftp --version
LFTP | Version 3.7.3 | Copyright (c) 1996-2008 Alexander V. Lukyanov

相关内容