2017-10-04 64 views
0

私にはわかりにくい問題が発生しています。私はサイト上のすべての.csvファイルを収集する目的で、夜間の自動ファイル転送プロセスの一部としてLFTPを使用しています。lftpワイルドカードを使用したmgetはファイルを誤って識別します

一般に、mgetコマンドとワイルドカード.csvを組み合わせると、期待するファイルを見つけてダウンロードできます。しかし、私は私のようにlsで識別されるファイル、持って面白いな状況に実行しているよ:

-rw------- 0 User Name -   6461 Oct 4 14:04 file name.csv 

を私はMGET * .CSVを実行すると、私は次のエラーメッセージが表示されます。

mget: Access failed: 550 /path/to/file/4 14:04 file name.csv: No such file or directory. 

mgetしようとすると、ファイルのメタデータの%d %h:%m部分がファイル名に追加されているようです。私はそれがファイル名のスペースのためかもしれないと思ったが、テストではそうではないようだ。

概要

  • ファイルは、ファイルがあるため、どこかのラインに沿ってmgetコマンドによって捕獲されていないmgetコマンド
  • によって捕獲されなければならないls
  • によって確認されたファイルが、存在しますsearchコマンドとgetコマンドの間に、ファイル名の先頭に追加の文字が追加され、存在しないファイルを取得しようとします。

私は何を間違えていると思いますか?

答えて

0

この質問に対する回答は、サーバーとバージョンによって異なりますが、将来問題が発見されない他の人につながる場合は、問題の原因となったものを分かち合います。

FTPサーバーには、ユーザーの名前をエスケープするメカニズムが異なります。この場合、操作ユーザーアカウントには、スペース区切りの2つの部分名があります。

FTPサーバーがユーザー名をエスケープする(またはしない)方法は、lftpのmgetの正規表現パーサーによってすべてが列からスローされる可能性があります。ユーザー名をlftpの期待値(1つの単語のように見えるが、_-を含むように見える)に変更すると、この問題が解決されます。

関連する問題