Lftp

lftp:上傳文件時刪除文件夾前綴

  • January 13, 2017

由於命令行的 ftp 客戶端lftp ,我想將本地文件夾中的一些文件上傳到遠端文件夾。

我想要的是 :

在我的本地電腦中,我確實有:

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的。

問題:

有沒有辦法在上傳文件時刪除目錄前綴,以便上傳目錄的內容而不是目錄本身?

那如果你在目標 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

引用自:https://unix.stackexchange.com/questions/337118