因此,我们有一堆旧且过时的 src 文件,需要移动到新的 NAS 存储中。 (我不知道为什么我们要保留它们)。
- 是否可以将所有文件和文件夹及其目录复制到新驱动器?
- 新存储驱动器上尚未创建目录。
- 命令可以做到这一点还是我必须编写脚本?
有人做过类似的事情吗?
答案1
是的,如果您的系统可以访问 src 文件和 NAS,则可以执行此操作。有多种方法可以使用单个命令来完成此操作,但该工具rsync
可能是最好的方法:
$ sudo rsync -avz src /mnt/NAS/
开关(来自 rsync 手册页):
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose increase verbosity
-z, --compress compress file data during the transfer
所以这个-a
开关实际上是一个用于整个开关的宏:
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-t, --times preserve modification times
-g, --group preserve group
-o, --owner preserve owner (super-user only)
-D same as --devices --specials
以 root 身份运行
您需要以 root 身份运行它以保留文件+目录的权限和所有权。此特定 root 用户还需要访问 NAS。有时默认情况下不会设置此功能,因此如果您不是管理员,则可能需要管理员的帮助。
开始之前
通常,您需要对相关目录进行一些前期分析,以查看是否存在任何符号链接或 fifo 类型文件。这些将需要额外的开关,rsync
以便它在目标目录中正确地重新创建它们。
无法直接安装访问 NAS
如果您无法将 NAS 直接安装在可以访问 src 文件的同一机器上,则一切都不会丢失。也可以rsync
过去ssh
。
$ sudo rsync -avz src root@remoteserver:/mnt/NAS/.
如果这些都不满足您的需求,还有更高级的选项。