SCPで「そのようなファイルまたはディレクトリがありません」エラーを修正する方法は?

SCPはSecureCopy Protocolの略で、「SecureShell」プロトコルに基づいています。コンピュータ間でファイルを転送する方法を提供します。この転送では、両方のコンピューターをリモートホストにするか、一方のコンピューターをローカルホストにしてもう一方のコンピューターをリモートホストにすることができます。ごく最近、多くのユーザーがSCPでファイルをコピーしようとしているときに「そのようなファイルまたはディレクトリはありません」というエラーが発生しています。

この記事では、この問題が発生する理由のいくつかについて説明し、問題を完全に修正するための実行可能なソリューションも提供します。また、それがトリガーされる理由のいくつかを調べます。競合を避けるために、ガイドに注意深く正確に従うようにしてください。

SCPで「そのようなファイルまたはディレクトリがありません」エラーの原因は何ですか?

複数のユーザーから多数の報告を受けた後、問題を調査し、完全に修正するための一連の解決策を考案することにしました。また、トリガーとなる理由を調査し、以下のようにリストアップしました。

  • 不正なコマンド: 場合によっては、ユーザーがファイルをコピーするために使用しているコマンドが正しくない可能性があります。コピーしている現在の状況に合わせて、copyコマンドを変更する必要があります。ファイルとディレクトリ全体をコピーするためのコマンドは異なります。また、構成が異なる2台のコンピューター間でコピーするコマンドは、要件に応じて変更されます。
  • ポート番号: コンピューター間でファイルをコピーするためのポート番号が指定されていない可能性もあります。2つのホスト間でファイルをコピーする前に、正しいポートを転送する必要があります。
  • 不正なログイン:現在サーバーにログインしていて、ファイルをデスクトップにコピーしようとすると、サーバーがサーバー内のローカルパスを見つけようとするため、このエラーが発生する可能性があります。これは、サーバーパスからログアウトすることで防ぐことができます。
  • ファイルのアクセス許可: 場合によっては、コピーされるファイルのアクセス許可が「読み取り専用」に制限されることがあります。これにより、サーバーがファイルにアクセスしたり、ファイルをコピーしたりできなくなる可能性があります。ファイルに読み取りと書き込みのアクセス許可を与えることが重要です。

問題の性質についての基本的な理解ができたので、次に解決策に進みます。競合を避けるために、これらは提示された特定の順序で実装してください。

解決策1:正しいコマンドを使用する

ファイルを転送するホストの構成に応じて、正しいコマンドを使用する必要があります。このために、異なるホスト構成間でファイルを転送するために使用できるコマンドのいくつかをリストします。

ローカルホストからリモートホストにコピーするには

ローカルホストは、物理的にアクセスできる実際のコンピューターです。リモートホストは、ユーザーが物理的にアクセスできないホストであり、離れたサーバーにあります。ローカルホストからリモートホストにファイルを転送するには、次のコマンド構成を使用する必要があります。

$ scp "the_file" your_username @ the_remote_host:the / path / to / the / directory

Alexa.txt」という名前のテキストファイルをコピーする例は次のとおりです。

$ scp Alexa.txt [email protected]:/ some / remote / directory

同様に、次の方法でディレクトリ全体をコピーできます。

$ scp -r "the_directory_to_copy" your_username @ the_remote_host:the / path / to / the / directory / to / copy / to

Alexa」という名前のディレクトリをコピーする例は次のとおりです。

$ scp -r foo [email protected]:/ some / remote / directory / bar

リモートホストからローカルホストにコピーするには

リモートホストからローカルホストにファイルをコピーする場合、コマンド構成は元の構成とは異なります。以下に、リモートホストとローカルホスト間でファイルをコピーするための適切なコマンドを示します。

ファイルをコピーするには、次のコマンドを使用します

$ scp your_username @ the_remote_host:the_file / your / local / directory

Alexa」という名前のファイルをコピーします。txt “、次のコマンドを使用します

$ scp your_username @ the_remote_host:Alexa.txt / your / local / directory

解決策2:ポート番号の特定

ファイルをコンピュータにコピーする前に、リモートホストのポート番号を特定する必要があります。そのために、コピープロセスを開始するときにポート番号を追加します。

次のコマンドを使用して、ポート番号を指定しながらコンピューター間でコピーできます。

$ scp -P port_number your_username @ the_remote_host:the_file / your / local / directory

これと同じコマンドを使用して、リモートホストとの間でコピーするときにポート番号を指定できます。コマンドの「$ scp」部分の後に「-P(ポート番号)」を追加するだけです。

解決策3:権限の変更

コンピュータ間でファイルをコピーするときは、ファイルに適切なアクセス許可を与える必要があります。したがって、このステップでは、ファイルのアクセス許可を変更するプロセスを示します。そのために:

  1. –コピーしようとしているファイルをクリックします。
  2. プロパティ」をクリックし、「セキュリティ」タブを選択します。
  3. すべての権限が「システム」と「管理者」に提供されていることを確認してください。

注: また、ファイルのコピー中にサーバーパスにログインしないようにしてください。