コロン/特殊文字を削除するための scp エイリアス

コロン/特殊文字を削除するための scp エイリアス

最近、Windows 10では、Windows用のLinuxサブシステムイニシアチブの一部としてbashシェルが追加されました。これは一般的に素晴らしいですが、興味深い問題に直面しました。 Windowsファイルシステムは、ファイル名にコロン/その他の特殊文字を許可しません。だから、次のようなことを試すときscp

scp user@remote:/path/to/file-2016-09-07_08:45:45.txt .

scpで無効な引数エラーが発生します。これを解決する1つの方法は、特殊文字なしで新しいファイル名を指定することです。しかし、次のようなことをしようとすると面倒です。

scp user@remote:/path/to/file-2016-09-07* .

これは、すべてのファイルで無効なパラメータエラーが発生したためです。_たとえば、.bashrcファイルにいくつかのコードを入れてscp引数を受け入れ、問題のある各文字をに置き換えることができますか?等しい

 scp user@remote:/path/to/file-2016-09-07_08:45:45 file-2016-09-07_08_45_45.txt

しかし、ポータブルですか*

答え1

名前を変数に入れると、名前のパラメータ置換を実行できます。ただし、シェルはリモートファイルシステムでscp「見ることができる」ワイルドカード拡張を「見ない」ので、シェルエイリアスは何の効果もありません。

説明に基づいて要求されたアクションを実行するスクリプトを作成できます。たとえば、次のようになります。

  • sshリモートファイル名のリストを取得するには
  • 屋根ふき...
  • ローカルファイル名を形成し、
  • 実際のリモート/ローカルファイルをコピーするには、scpを使用してください。

答え2

元のファイル名に代替 Unicode 文字を使用して、命名問題なくコピーすることもできます。

関連情報