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はカラのフォルダもコピーするオプション。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
【Apache】サーバーに同時接続可能なクライアント数を調整する
GitLabにHTTPS経由でリポジトリをクローン&読み書きを行う
Windows版Google Driveが使用中と言われアンインストールできない場合
【Linux】iconv/libiconvをソースコードからインストール
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【PHP】Mail/mimeDecodeを使ってメールの中身を解析(準備編)
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合