将一个分区中的所有文件复制到另一个分区中的文件夹并更新符号链接

IMTheNachoMan

我有两个分区:

  • /dev/sda 安装为 /
  • /dev/sdb 已安装ias /stuff

我想将所有内容复制/到,/stuff/backup但我也想更新符号链接以指向/输入/stuff/backup

例如,如果我有这样的符号链接:

/path/to/some/link -> /path/to/the/real/file

然后,在备份后,它应如下所示:

/stuff/backup/path/to/some/link -> /stuff/backup/path/to/the/real/file

我用谷歌搜索了一下,但似乎无法弄清楚。

从IMO的讨论中,tar是最好的工具,因为它将保留链接。我还建议通过实时CD进行此操作。您将挂载ubuntu根分区并cd到其中。

如果要备份数据库,请使用数据库工具,即mysqldump

从正在运行的系统(非实时USB):

注意:在运行此命令之前,请检查这些排除项,有关详细信息,请参见下文。

最小排除将是/proc /tmp /mnt /dev/sys其他是可选的,但将大大减少备份的大小

cd / # THIS CD IS IMPORTANT THE FOLLOWING LONG COMMAND IS RUN FROM /
tar -cvpzf backup.tar.gz \
--exclude=/backup.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/run \ 
--exclude=/media \ 
--exclude=/var/log \
--exclude=/var/cache/apt/archives \
--exclude=/usr/src/linux-headers* \ 
--exclude=/home/*/.gvfs \
--exclude=/home/*/.cache \ 
--exclude=/home/*/.local/share/Trash /

这将压缩存档,它是完全可移植的,并且位于/backup.tar.gz

选项的含义:来自https://help.ubuntu.com/community/BackupYourSystem/TAR

tar-是创建档案的命令。紧随其后的每个字母进行修改,下面分别进行说明。

c-创建一个新的备份存档。

v-详细模式,tar将在屏幕上显示正在执行的操作。

p-保留放置在存档中的文件的权限,以便以后还原。

z-使用“ gzip”压缩备份文件以使其更小。

f-指定备份的存储位置,backup.tar.gz是此示例中使用的文件名。它将存储在当前工作目录中,即您使用cd命令时所设置的目录。

\只需在下一行继续执行该命令,为了清楚起见,我添加了它们。

--exclude应该是不言而喻的,但它排除这些目录。

您可以使用该--one-file-system选项,而不是/ proc,/ sys,/ mnt,/ media,/ run和/ dev的所有排除项,但是,如果您有单独的/ boot或/ home(或其他分区),则需要将其添加到存档中。

您可以排除您不需要的目录,即无需编辑。/usr/share或类似。

要查看内容,请参阅如何在不从命令行提取的情况下查看tar.gz文件的内容?

您可以使用vim / gvim查看文件内容,并使用zdiff列出差异

编辑:从评论“它炸了一半显示:/ lib / plymouth / themes / / lib / plymouth / themes / ubuntu-text / tar:/:文件更改了,因为我们在mini-PCIe SSD上读取10分钟后(Sata II频道)。这将需要一些时间进行微调。”

发生这种情况是因为正在使用文件系统,因此,如果在tar期间将更改写入磁盘,则会收到这些消息。可以通过从tar存档中排除尽可能多的位置和/或从实时CD / USB运行tar来避免此类问题

另外,从评论中,其他可排除的候选人包括:

〜/ .cache#这些文件是完全不必要的,实际上,您可以随时通过删除此目录来恢复磁盘空间。

/ usr / src / linux-headers *#同样,您不需要大量数据。

〜/ .local / share / Trash#查看并删除垃圾或排除此目录

/ media#将具有Windows分区

/ var / run / user / $ USER / ...这是/ run的符号链接,所以我--exclude = / run也是如此。#这将具有可移动设备,例如Flash驱动程序和android设备,因此很可能会被排除在外。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一个文件夹中的所有文件复制到另一个文件夹并更改扩展名?

[Unix][Shell Script] 将一个文件夹中的所有文件复制到另一个文件夹

将所有文件从一个文件夹复制到另一个

PHP将所有图像文件夹从一个文件夹复制到另一个文件夹

Powershell:将父文件夹中的所有子目录和内容复制到另一个文件夹目标

将一个文件复制到许多包含另一个条件的文件夹中

将所有用户的所有ini文件从一个文件夹复制到另一个文件夹

如何将文件夹复制到 Makefile 中的另一个文件夹?

使用Python将子文件夹中的图像复制到另一个文件夹

在更改时将所有文件更改从一个文件夹连续复制到另一个文件夹(Windows)

需要使用java将所有文件从一个文件夹复制到另一个文件夹

如何将资源目录以及Jar中所有包含的文件和子文件夹复制到另一个目录中

如何将一种特定类型的所有文件从一个文件夹复制到 Python 中的另一个文件夹

将文件夹列表复制到另一个文件夹?

Python将数据从文件复制到不同文件夹中的另一个文件

将文件从一个文件夹复制到另一个文件夹

VBA将一个文件夹中多个工作簿的范围复制到另一个文件夹中

将文件从嵌套子目录中复制到另一个文件夹中

如何将文件从文件夹和子文件夹复制到R中的另一个文件夹?

如何仅将指定目录中的文件复制到另一个文件夹

如何将几个文件夹中的文件复制到另一个目录

将内容从一个文件夹复制到另一个文件夹

如何将一个文件夹复制到另一个文件夹

如何将具有相同名称的文件夹递归复制到Google Colab中的另一个文件夹

根据 OSX 终端中的已知文件夹名称列表将文件夹复制到另一个文件夹

将文件名末尾带有特定文本的文件从一个文件夹复制到另一个文件夹

将文件从一个文件夹复制到另一个文件夹,但每个文件之间都有间隔

使用python仅将更新/新文件从一个文件夹复制到另一个文件夹

shell如何对目录中的所有文件应用功能并将结果复制到另一个文件夹中?