迷惑なファイル名(スペース、中括弧など)を正しく処理するファイル名を作成する必要があります。
scp -rv "$1" shiny:/Volumes/Seagate3To/\"$1\"
この関数は機能しますが、2番目の引数で引用符をエスケープする必要がある理由を理解できませんscp
。
ベストアンサー1
1ドルだとしましょう
This is a test directory name
ターゲットディレクトリ(コロンの後の部分)が完全な(二重引用符を含む)ターゲットコンピュータに渡されることを望むので、二重引用符をエスケープします。
私たちが過度にしたいことは次のとおりです。
/Volumes/Seagate3To/"This is a test directory name"
エスケープしないと、ローカルシステムは二重引用符を使用して、次の文字列を6つのスペースで区切られた文字列に送信します。
/Volumes/Seagate3To/This is a test directory name
結果はエラーです。