SCPの使用エラー:「通常のファイルではありません」


73

私はしばらく探していましたが、通常のファイルの定義が見つかりません。私のパスは永続的であり(で始まります/)、接続しています

scp root@IP: /path/to/picture.jpg

パスワードを問い合わせると...

scp: .: not a regular file

回答:


59

通常のファイルとは、名前付きパイプ、デバイス、ソケット、ドアなど、ディレクトリまたはよりエキゾチックな種類の「特別な」ファイルではないファイルです。シンボリックリンクも通常のファイルではありませんが、ターゲットのように動作しますアプリケーションがファイルのコンテンツにアクセスしています。

root@IP:コピーのソースおよび/path/to/picture.jpg宛先として渡されました。ソースはroot、マシン上のユーザーのホームディレクトリですIP。これは宛先としては便利ですが、ソースとしては便利ではありません。入力した内容は、ディレクトリをファイルにコピーするために必要です。オプションscpを使用して再帰コピーを要求しない限り、ディレクトリをコピーできません-r(また、既存のファイルをディレクトリで上書きすることを拒否します-rが、ソースが通常のファイルである場合は静かに通常のファイルを上書きします)。

/path/to/picture.jpgコピーするファイルのリモートマシン上のパスの場合、ファイル名をホスト仕様に固定する必要があります。:ホスト名とリモートパスを区切るのはコロンです。宛先も指定する必要があります。

scp root@IP:/path/to/picture.jpg /some/destination

ローカルファイル/path/to/picture.jpgをリモートホストにコピーする場合は、引数を交換する必要があります。Unixのコピーコマンドは、ソースを最初に、デスティネーションを最後に配置します。

scp /path/to/picture.jpg root@IP:

リモートファイル/path/to/picture.jpgをローカルの同じ場所にコピーする場合は、パスを繰り返す必要があります。シェルに繰り返し作業をしてもらうことができます(タイピングが少なくなり、読みにくくなります)。

scp root@IP:/path/to/picture.jpg /path/to/picture.jpg
scp {root@IP:,}/path/to/picture.jpg

2
ホスト名とファイルの間にスペースが存在しないことを確認してください
-chris

これを読んだ後、私は信じられないほど愚かな感じがします。ソース、宛先!ああ!
ハイムEliyah

112

ディレクトリをコピーするときは、次の-rオプションを使用する必要があります。

scp -r root@IP:/path/to/file /path/to/filedestination

1
受け入れられた回答は技術的に実際の質問に答えますが、この回答はこのページに来た人が探しているものである可能性が高いです。
cgnorthcutt

4

構文の問題-間の空白を削除します

root @ IP:

そして

/道


しかし、その後、あなたはscpもうターゲットを持っていません。
ベルンハルト

うん。Enterキーを押しすぎたため、修正する担当者がいません。ここでコメントすることもできて驚いた。乾杯。
lurker

2
自分の投稿にいつでもコメントできると思うし、いつでも編集できると思った?
ベルンハルト

私は、このエラーが発生する可能性がありますthikませんnot a regular file
HISI

@hisiは-rscp引数として使用します。
アンクールロリヤ

2

scp root@IP:/path/to/file /path/to/filedestination

上記のコマンドは、リモートサーバーからコンピューターにファイルをコピーします。入力するだけの場合scp root@IP:、ルートのホームディレクトリ(scp users home .)をコピーしようとします。

そのため、ファイルへの正確なパスを指定する必要があります


これはうまくいきました。たくさんありがとう、男。がんばり続ける!
-JeffM

2

ファイルではなくフォルダをコピーしようとしているため、-rオプションを使用してファイルを再帰的にコピーする必要があるため、このエラーが発生しています

リモートマシンからローカルマシンにファイルをコピーするときに以下のコマンドを使用します

scp -r root@RemoteIP:/path/to/file /path/to/filedestination

または

ローカルマシンからリモートマシンにファイルをコピーする場合

scp -r /path/to/file root@RemoteIP:/path/to/filedestination

0
scp root@IP:/path/to/*.jpg  /path/to/filedestination/

これは動作します(少なくとも私のMacでは)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.