スペースを含むファイル名を scp するにはどうすればいいですか?

スペースを含むファイル名を scp するにはどうすればいいですか?

scpリモート コンピューターからファイルを転送するのに を使用するのが少し困難です。この問題は、ファイルが含まれているディレクトリの名前に関係しているようです。ファイルは、 (とphotos 4の間にスペースが 1 つ) という CD ドライブにあります。転送を試みたとき、次のコマンドを使用しました。photos4

scp [remote username]@192.168.1.X:/media/[remote username]/photos\ 4/file.jpg /home/[username]/Pictures

しかし、 というエラー メッセージが返されますNo directory: /media/[remote username]/photos。バックスラッシュによってスペースがエスケープされ、ディレクトリが として読み取られると思いましたphotos 4

ここで私が何を間違っているのか誰か教えてもらえますか?

file.jpg(余談ですが、 をリモート コンピュータのデスクトップにコピーし、次のコマンドを実行しました。

scp [remote username]@192.168.1.X:/home/[remote username]/Desktop/file.jpg /home/[username]/Pictures

そしてそれはうまくいったので、エスケープ シーケンスが原因のようです。何が問題なのかはわかりません。

答え1

ディレクトリやファイル名のスペースはLinuxシステムの天敵ですが、もちろん逃げた十分な注意を払って。試すことができる可能性は 3 つあります。

  1. scp [remote username]@192.168.1.X:"'/media/remote_username/photos 4/file.jpg'" .
  2. scp [remote username]@192.168.1.X:"/media/remote_username/photos\ 4/file.jpg" .
  3. scp [remote username]@192.168.1.X:/media/remote_username/photos\\\ 4/file.jpg .

すべて動作するはずですが、構文的には他のものよりも理解しやすいものもあります...

参考文献:

答え2

ZSHユーザー向けの修正方法は次のとおりです。

  1. SCP '[メールアドレス]:/media/"photos 4"/file.jpg' /home/username/Pictures
  2. SCP '[メールアドレス]:/media/"写真 4"/"スペースのあるファイル.jpg"' /home/ユーザー名/Pictures

関連情報