web-dev-qa-db-ja.com

scpは「通常のファイルではない」ことを示します

Linuxでscpを使用すると問題が発生します。「通常のファイルではありません」と表示されます。私はそれについて他の質問/回答を見ましたが、何が間違っているのかわかりません...私は書きました:

scp aa@aa:/home/pictures/file.fits .

file.fitsからaa@aa/home/picturesから現在のディレクトリにコピーします。 /home/を使用せずに試しましたが、どちらも機能しませんでした...

何が悪いのか理解できますか?

27
Fourmicroonde

これをテストしたところ、scpがnot a regular fileを返す状況が少なくとも3つ見つかりました。

  1. ファイルは実際にはディレクトリです
  2. ファイルは名前付きパイプ(別名FIFO)
  3. ファイルはデバイスファイルです

ケース1が最も可能性が高いようです。 scpを使用してディレクトリ構造全体を転送する場合は、-rオプションを使用して再帰コピーを示します。

60
Multimedia Mike

「/home/pictures/file.fits」は、リモートサーバー上の実際のファイルシステムオブジェクトを指定する必要があります。そうでない場合、scpは別のエラーメッセージを表示します。

FITSは 画像形式 であることがわかります。 「/home/pictures/file.fits」は、リモートサーバー上のディレクトリ名で、FITSファイルなどが含まれていると思います。

scpでディレクトリをコピーするには、「-r」フラグを指定する必要があります。

scp -r aa@aa:/home/pictures/file.fits .
18
Kenster

このエラーが発生する1つの方法は、次のような最初のパスの前にスペースがある場合です

scp myUserName@HostName: /path/to/file  /path/to/new/file                            ^

修正するには、スペースを取ります:

scp myUserName@HostName:/path/to/file  /path/to/new/file
9
wizurd

従う必要がある簡単な手順

1)scp -r user @ Host:/ var/www/html/projectFolder/var/www/html/localsystem-project-folder

2)scp -r user @ Host:/var/www/html/projectFolder/filename.php/var/www/html/localsystem-project-folder /

ここで、-rは再帰的なトラバース用で、directorはエラーなしで役立ちます。

3
niraj rahi

コピーしたファイルの正確な名前が必要なため、機能しません。したがって、このコマンドは次のように使用します。

scp aa@aa:/home/pictures/file.fits ./file.fits

ファイルの名前もこのように変更できます。

scp aa@aa:/home/pictures/file.fits ./newNameFile.fits
0
Faunus