web-dev-qa-db-ja.com

sftpで「put」コマンドを使用すると、「no such file or directory」が表示されます

私はこのトピックをレビューしました: sftpコマンドの使用中にそのようなファイルまたはディレクトリエラーメッセージを修正する方法 および他のいくつか、しかし、何もこれを解決する助けにはなりませんでした。

簡単に言えば、ローカルマシンのデスクトップディレクトリにあるblankfile.txtという名前のファイルを、LAMPサーバーのリモートディレクトリに移動しようとしています。

私はもう試した:

put Desktop/blankfile.txt  
put blankfile.txt 192.168.x.x:/home/user/Desktop/
put /home/user/Desktop/blankfile.txt

(リモート作業ディレクトリから入力中)

何が間違っていますか?

2
Mark Alexa

私の推測では、正しいローカルパスにいないため、ローカルマシンの現在のディレクトリの場所を見つけるには、lpwdを使用します。

間違ったパスにいる場合は、lcdを使用して正しいパスに移動します。例:

lcd ~/Desktop

すべてのファイルが適切に使用されていることを確認してください:llsを使用して、ローカルファイルのリストを取得します。またはこのようなものでさえ:

lls blankfile.txt

そこにあることを確認します。 putを使用して、リモートマシンへのアップロードを開始できます。

put blankfile.txt

アクセス許可エラーが発生した場合は、pwdコマンドを使用して、リモートマシンの現在位置を確認してください。

/varのようなパスにいて、通常のユーザーでsftpを実行した場合、そこにファイルをアップロードできないことは明らかです。この場合、次のようなエラーが表示されます。

remote open("/root/blankfile.txt"): Permission denied

cdコマンドを使用して、書き込みが許可されているディレクトリに変更し、putコマンドを使用します。

発生する可能性がある他のアクセス許可の問題は、ローカルファイルのアクセス許可です。

Couldn't open local file "blankfile.txt" for reading: Permission denied

lls -l blankfile.txtを使用してローカルファイルのアクセス許可を確認し、ローカルマシンの現在のユーザーがそのファイルを読み取る権利を持っていることを確認します。

3
Ravexina