コピーするパスやファイル名にスペースが含まれている場合、どうすればscpできますか?


7

リモートに次remote_hostのようなファイルがあります:

\home\user\path with spaces\filename with spaces.ext

そして、私はscpそれを現在のディレクトリにしたい.。どうやってやるの?

ありがとう!


こんにちは、SUへようこそ。独自の質問に答えることは問題ないだけでなく、Stack Exchangeネットワークで積極的に奨励されています。してください編集本当の問題にそれを行ってから答えとしてあなたのソリューションを投稿し、それを受け入れるためにあなたの質問を。
テルドン

いくつかの調査の後、次の2つのオプションが見つかりました:scp 'user @ remote_host: "/ home / user / path withスペ​​ース/ファイル名withスペ​​ース.ext"'。scp 'user @ remote_host:/ home / user / path \ with \スペース/ファイル名\ with \スペース.ext' それがあなたにも役立つことを願っています!楽しんで!
リカルド・ボウ

SUへようこそ。あなたの答えは正しいですが、コメントです。最善の方法は、回答セクションにコピーして、正しいものとして受け入れることです。このように、それはあなたが評判を獲得し、同じ問題を持つ人々があなたの答えが機能し、何人の人々がそれが有用であるとわかったかを示すように、それを支持することができます。
ローレント

Afte terdonコメント、私は自分の質問に答えようとしますが、許可されませんでした。私は新しいユーザーであるため、8時間待つ必要がありました。
リカルドボウ

回答:


13

調査の結果、次の2つのオプションが見つかりました。

scp 'user@remote_host:"/home/user/path with spaces/filename with spaces.ext"' .

そして

scp 'user@remote_host:/home/user/path\ with\ spaces/filename\ with\ spaces.ext' .

それがあなたにも役立つことを願っています!

楽しんで!


1

2つのオプションがあります。

オプション1:スペースを「\」として入力します。例; /home/matthew/File\ With\ Spaces.file

オプション2:パスを次のようにアポストロフィで囲んで入力します'/home/matthew/File With Spaces.file'

Tabulatorキー(Tab)を使用してファイル名を自動補完する場合、「\」が自動的に挿入されますが、リモートホストで機能するには公開キー認証を使用する必要があります。


技術的には、これらはアポストロフィではなく一重引用符です。ASCIIの同じ文字ですが、アポストロフィという用語には、ここでは当てはまらない英語の文法的な意味合いがあります。
13

おかげで、私はそれを引用と呼ぶつもりでしたが、混乱を引き起こしたくありませんでした。次回は「単一引用符」を覚えています。

1
申し訳ありませんが、それは機能していません。単一引用符とバックスラッシュまたは二重引用符を組み合わせる必要があります。タブも私には機能しませんでした。
リカルドボウ

-1

これを試してみてください。

defstr PathAndFileName$
defstr Sheller$
PathAndFileName$="'c:\Documents And Settings\Users\Desktop\File.ext'"

Sheller$="scp 'user@remote_host:PathAndFileName$'"

Shell Sheller$

または

run "scp user@remote_host:PathAndFileName$"

パスまたはファイル名を引用符で囲む必要があります。そうしないと、scpはスペースの後のものをオプションまたはコマンドとして扱います。


なぜあなたの投稿が質問に答えるのか、それがどのように機能し、なぜ以前の回答と異なるのかを説明してください。
マテユハス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.