アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【WindowsDebian
Windows版aptことchocolateyを導入しrsyncを使う
POSTED BY
2023-05-14

rsyncは最古のコマンドにして現在なお最速のファイルコピーコマンド(多分)であるので、Windowsでも使いたいが、単体では用意されていないらしい。

ので、Debianのapt-get感覚でWindowsで使えるChocolateyというパッケージ管理ツールがあるらしいのでまずそれを導入し、そこからrsyncを入れることにする。

Chocolateyのインストール

公式サイト

https://chocolatey.org/install#installing-chocolatey

へ行き、Individual→InstallにあるPowerShellスクリプトをコピーする。

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

スタートメニュー→Windows PowerShell→Windows PowerShellを右クリックして「管理者として実行」する

公式サイトからコピーしたスクリプトをCtrl + Vで貼り付けてPowerShellで実行する。

自動でインストールが始まって、導入完了

rsyncのインストール

そのままPowerShell上でchoco installする。

choco install rsync

インストールしますか?の英語に「Yes」と打ってインストール完了。

ファイルコピーを試す

そのままPowerShell上でrsyncコマンドを使ってみる。

Linuxのrsyncと全く同じに使えるが、ローカルファイル(自分のWindowsPC内ファイル)を指定する場合、/cygdrive/をつけなくてはならないという謎のcygwinルールが存在する。

例1:「C:¥てすとふぉるだ」の内容を「D:¥」ドライブ直下にコピーする

rsync -av /cygdrive/c/てすとふぉるだ /cygdrive/d/

-vは詳細情報を出力するオプション。うっとうしければ-aのみでよい。

例2:「C:¥TestFolder」の内容をリモートサーバ「111.212.11.33:/home/hogeuser」にコピーする

rsync -av -e "ssh -i /cygdrive/c/my/ssh_private_key" /cygdrive/c/TestFolder hogeuser@111.212.11.33:/home/hogeuser

-eオプション以下ダブルクオテーションでsshコマンドのオプションを指定。ここでは秘密鍵ファイルを指定している。

なおWindowsで単純にCUIコピーを行うならrobocopyというコマンドも一応標準である。

robocopy 元フォルダ 宛先フォルダ /s /e

/sはサブディレクトリ以下も再帰的にコピーするオプション、/eはカラのフォルダもコピーするオプション。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】