ないかなりbash
、それはscp
[ユーザー@]ホストプレフィックスとしてx:
の治療だ、試してみてください。
scp ./file:\ name.mp4 [email protected]:"/path/to/dest"
(例えば./
)相対的または完全修飾パス(/path/to/source
)を使用するには、この動作を防ぎます - :
の前に/
が存在すると、OpenSSHは可能なhost:
または[email protected]:
という接頭辞のチェックを停止します)。 OpenSSHのscp
特殊ケースのファイル名はとなります。はコロンで問題なく動作しますが、通常の意味で:
をエスケープするサポートはなく、:
のほとんどのファイル名で有効なホスト名の概念はありません。これを引き起こします。
により
[]
囲まれたIPv6アドレスのOpenSSHのの単純化した解析に
(、することができます成功し[
で始まる、または:
前@[
が含まれていると]:
が含まれていませんが、それは;-)
一般的に有用ではありません
:
を含む
scp
ファイル
(original questionそれはその状況に適用される?私はbashでコロンをエスケープするにはどうすればよいだったが、ないようにする場合、以下のテキストが書かれていたシェルエスケープの無い量としてscp
が役立ちます。)
について方法:
を逃れるために、質問に答えるために、あなたがする必要はありませんが、「\:
」作品。
- をヌルコマンド
:
、エスケープする必要はありません、あなたはできますが、あなたは脱出する場合、それは、コマンドには効果(「影響なし」は、完全に真実ではありませんしていないだけで\e\c\h\o foo
のように::
が使用されている場所1文字以上、それは)
PATH
に一致しているエイリアスを防ぐことができます(その他、CDPATH
、MAILPATH
)が値をエスケープ有用な効果(私は:
を含むディレクトリからの私のPATHに、プログラムを実行することができませんでしたを持っていません、少し予期しない)
- パラメータ拡張
${name:-x}
多く、name
は[a-zA-Z_][a-zA-Z0-9_]
、変数名をエスケープするので、不要でなければならない、とあいまい、
? :
トライナリのみを変数と数字上で動作パラメータ展開の他のバリエーションで、その後の:
をエスケープする必要はありません、必要はありませんので、 [[:digit:]]
ようなパターンのクラスと
==
と=~
を逃れるために、あなたは\:
で脱出することができますが、私は...それは今までに役に立つかもしれない方法として損失でコマンドや関数名内
- 、必要ですん脱出するには、
\:
は有効な効果がありません
(この点で、それは#foo
という名前のコマンドがする必要があるでしょう#
に違う、ヌルコマンドはちょうど:
で、あなたは「:foo
」のような名前のコマンドや関数を持つことができ、それはエスケープせずに呼び出すことができることに注意してください)
同じ問題が 'rsync'に影響します。幸いなことに、ファイル名の前に '。/'を付けるという同じ解決策もあります。 –