Windows命令行工具汇总
- 2025-10-22 18:27:00
- 丁国栋
- 原创 46
windows有什么命令行工具可以代替rsync?
在 Windows 系统中,虽然没有原生的 rsync,但可以通过以下命令行工具实现类似功能:
1. Robocopy(内置工具,推荐)
Windows 自带的强大文件复制工具,支持增量同步、断点续传、镜像同步等。
robocopy 源目录 目标目录 /MIR /COPYALL /R:1 /W:1 /MT:16
/MIR:镜像模式(完全同步,删除目标中多余文件)/COPYALL:复制所有文件属性(包括权限、时间戳等)。注意:如果使用这个选项,需要有管理员权限。/MT:16:多线程加速(16线程)/R:1 /W:1:失败重试次数和等待时间(减少卡顿)
2. cwRsync(Windows 版 Rsync)
基于 Cygwin 的 Rsync 移植版本,支持原生 Rsync 协议。
- 下载地址:https://itefix.net/cwrsync
-
示例:
cwrsync -avz --delete /cygdrive/c/源目录/ user@remote:/目标目录/
3. DeltaCopy(Rsync 的 GUI + 服务端)
提供图形界面和后台服务,简化 Rsync 使用。
4. PowerShell 脚本
用 PowerShell 实现简单同步逻辑(适合轻量需求):
# 增量同步(仅复制新文件)
Copy-Item -Path "C:\源目录\*" -Destination "D:\目标目录\" -Recurse -Force
5. FreeFileSync(GUI + 命令行)
支持生成命令行批处理脚本的图形化工具。
- 官网:https://freefilesync.org
-
命令行示例:
FreeFileSync.exe "同步配置.ffs_batch"
6. Git Bash + Rsync
如果已安装 Git for Windows,可通过 Git Bash 使用原生 Rsync:
rsync -avz --delete /c/源目录/ user@remote:/目标目录/
选择建议
- 优先内置工具:用
Robocopy(无需安装,性能好)。 - 需要跨平台同步:用
cwRsync或Git Bash + Rsync。 - 图形化需求:
FreeFileSync或DeltaCopy。
注意:若需要 实时同步,可搭配 Robocopy + 计划任务或第三方工具(如 Syncthing)。
linux 下的 inotify 工具在Windows 下有替代的命令行工具么?
在 Windows 下,没有直接等同于 Linux inotify 的内置工具,但可以通过以下命令行工具或方案实现类似的文件/目录监控功能:
1. PowerShell 的 FileSystemWatcher
通过 PowerShell 脚本监听文件系统事件(创建、修改、删除等),适合脚本化需求。
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\监控目录"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
Register-ObjectEvent $watcher "Created" -Action {
Write-Host "文件创建: $($EventArgs.FullPath)"
}
Register-ObjectEvent $watcher "Deleted" -Action {
Write-Host "文件删除: $($EventArgs.FullPath)"
}
# 保持脚本运行
while ($true) { Start-Sleep -Seconds 1 }
优点:无需安装,灵活定制。 缺点:需手动处理事件逻辑。
2. Windows 内置工具 fsutil
检查文件更改(需轮询,非实时):
fsutil file queryfilename C:\监控目录\test.txt
缺点:仅支持单个文件,无目录监控。
3. 第三方工具推荐
a. choco install 安装的工具
-
inotify-win(类 Unix 的inotifywait) 通过 Chocolatey 安装:choco install inotify-win示例(监控目录):
inotifywait.exe C:\监控目录 -r -m -e create,delete,modify -
Watchman(Facebook 开源的多平台监控工具) 官网:https://facebook.github.io/watchman/
b. WSL 中使用原生 inotify
若已启用 WSL(Windows Subsystem for Linux),可直接在 Linux 子系统中使用:
inotifywait -r -m /mnt/c/监控目录 -e create,delete,modify
4. 专业工具(带命令行支持)
-
Process Monitor(ProcMon) Sysinternals 工具之一,可监控文件/注册表/进程活动,支持命令行过滤:Procmon.exe /AcceptEula /Minimized /Filter "Operation is WriteFile"官网:https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
-
Directory Monitor支持实时监控并触发命令:DirMon.exe -d "C:\监控目录" -s -c "echo 文件已修改"
5. 编程接口调用
通过 C#/Python 等调用 Windows API(如 ReadDirectoryChangesW),适合开发场景:
# Python 示例(使用 watchdog 库)
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class Handler(FileSystemEventHandler):
def on_modified(self, event):
print(f"文件修改: {event.src_path}")
observer = Observer()
observer.schedule(Handler(), path="C:\\监控目录", recursive=True)
observer.start()
observer.join()
选择建议
- 快速脚本监控:PowerShell
FileSystemWatcher。 - 跨平台兼容:WSL 原生
inotifywait或Watchman。 - 专业需求:
Process Monitor或第三方工具(如inotify-win)。 - 开发集成:直接调用 Windows API 或使用 Python 库(如
watchdog)。
注意:Windows 原生缺乏类似 inotify 的轻量级工具,多数方案需依赖轮询或第三方组件。