コマンドラインから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