2024-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はカラのフォルダもコピーするオプション。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
ファイアウォール内部のWindows11 PCにmacOS Sequoiaからリモートデスクトップする
ファイアウォール内部のNode.js+Socket.ioを外部からProxyPassを通して使う
ファイアウォール内部のGradio/WebUIを外部からProxyPassを通して使う
オープンソースリップシンクエンジンSadTalkerをDebianで動かす
ファイアウォール内部のOpenAPI/FastAPIのdocsを外部からProxyPassで呼ぶ
Debian 12でsshからshutdown -h nowしても電源が切れない場合
【Windows&Mac】アプリのフルスクリーンを解除する方法
Debian 12でtsコマンドが見つからないcommand not found
Debian 12でsyslogやauth.logが出力されない場合
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
【Apache】サーバーに同時接続可能なクライアント数を調整する
Gmailのプロモーションメールをすべて削除する方法
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
Windows11でMacのキーボードを使うには
【Raspberry Piメモ・3】オンボード無線LANでWi-fi Direct対応機器に接続する
Debian 12で固定IPアドレスを使う設定をする
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合