19

SFTP を使用してディレクトリ全体をリモート ホストにアップロードしようとしていますが、エラーが発生しました。

以下のようにコマンドを使用しました。 (echo "put -r LargeFile/"; echo quit)|sftp -vb - username@remotehost:TEST/

しかし、「正規化できませんでした:そのようなファイルまたはディレクトリはありません」「パスを正規化できません」というエラーが表示されました「/home/s1238262/TEST/LargeFile」

アクセス権が原因だと思いました。そこで、インタラクティブ モードでリモート ホストへの SFTP 接続を開き、TEST/ に新しいディレクトリ "LargeFile" を作成しようとしました。そして、私は成功しました。次に、上記と同じコマンドを使用して、ディレクトリ「LargeFile」全体をアップロードしました。私も成功しました。LargeFile のサブディレクトリは、自動的に作成またはコピーされました。

だから、私は混乱しています。非対話モードでは LargeFile/ ディレクトリのみを作成できないようです。それまたは私のコマンドの何が問題になっていますか?

4

5 に答える 5

22

SFTP では、ディレクトリが存在する場合にのみコピーできます。そう

> mkdir LargeFile
> put -r path_to_large_file/LargeFile

@Vidhuran からのリンクにあるアドバイスと同じですが、これで読む手間が省けます。

于 2014-07-21T15:36:36.213 に答える
1

私にとって最も簡単な方法は、フォルダーをローカルLargeFile.zipで簡単 に圧縮することでしたput LargeFile.zip

zip -r LargeFile.zip LargeFile
sftp www.mywebserver.com (or ip of the webserver)
put LargeFile.zip (it will be on your remote server local directory)
unzip Largefile.zip
于 2014-03-02T21:57:01.270 に答える
1

より良い方法は、scp を使用することです。

scp -r LargeFile/"; echo quit)|sftp -vb - username@remotehost:TEST/
于 2014-07-13T18:24:48.690 に答える
0

Ubuntu 14.04 を使用している場合、sftp にバグがあります。ファイル名に「/」が追加されている場合は、「Couldn't canonicalize: Failure」エラーが発生します。

例えば:

sftp> cd my_inbox/ ## エラーが表示されます

sftp> cd my_inbox ## エラーは表示されません

正しいリクエストでスラッシュが欠落していることに注意してください。TAB キーを使用してパス内の名前を自動入力すると、スラッシュが表示されます。

于 2016-04-07T17:20:57.863 に答える