我家里有一个新的无线路由器,上面挂着一个 3 TB 的硬盘。我想在 cygwin 中编写一个备份脚本,将所有更改的文件复制到外部硬盘上。
首先,我该如何cd
进入硬盘?在 Windows 文件资源管理器中,我只需输入//192.168.1.1
,它就会带我进入网络驱动器。但是,当我输入时,cd //192.168.1.1
它不起作用。那么我该如何将目录更改为 HD?
其次,是否有人能建议如何编写一个好的备份脚本来复制某些目录(如果它们发生了变化)?
答案1
您可以在 cygwin UNIX 环境的底层 Windows OS 视图中查看已安装的驱动器。在 cygwin shell 提示符下(通常是)/cygdrive
执行以查看驱动器的安装位置。 df
bash
以下是有关安装驱动器位置的文档。例如,要更改为作为 Windows 安装的网络驱动器f:\
,您需要cd
,/cygdrive/f
如下所示:
$ cd /cydrive/f
以下是一个例子:
- OS X Mavericks (UNIX) 安装了 3 TB 驱动器
/Volumes/Time Machine
- 虚拟 Windows XP (VM) 在 OS X 上运行,
/Volumes/Time Machine
并且X:\
- Cygwin 在 XP VM 上运行,并且
/Volumes/Time Machine
将其视为/cygdrive/x
甚至x:
$ ls x:
这是一张图片:
如果外部 HD 当前未安装在 Windows 主机上且已映射到中的安装点/cygdrive
,则可能需要自行安装网络共享。 看一下 cygwin 对 UNIXmount
命令的实现。
查看网络文件夹的另一种方法是按照您使用的语法 - 我的 OS X 服务器将我的 OS X 登录文件夹 whmcclos 导出为 SMB 共享文件夹。 我可以在运行 OS X 的 Windows XP VM 上,将当前工作目录从 cygwin 设置为该共享文件夹,如下所示:
$ cd //192.168.0.2/whmcclos
这样,我甚至不需要将文件夹安装为驱动器号就可以从 cygwin 内部查看它。
对于备份已更改的文件,rsync
将以递归方式仅备份目录树中已更改的文件 - 它计算最小备份集,并且仅备份已更改的内容,并且具有大量选项,包括复制到网络驱动器并能够通过加密使用ssh
。 以下是一些有关使用rsync
cygwin 的提示。 这是一个命令,用于压缩和存档(递归)安装在驱动器上的源,c:\
并将目标放置在安装f:\
在 Windows 主机底层 cygwin 上的驱动器上。
$ rsync -avz /cygdrive/c/path/to/source /cygdrive/f/path/to/target
如果您需要任何进一步的帮助,请发表评论。