web-dev-qa-db-ja.com

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

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

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

そして、それが働いたので、エスケープシーケンスが犯人のようです。何が問題なのかわかりません。)

6
Alcuin Arundel

ディレクトリまたはファイル名のスペースは、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 .

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

参照:

6
andrew.46