我的 Ubuntu 无法启动。我能够从 liveCD 启动并连接外部硬盘。我想备份我的文件。我试过了cp -r /home destination
,但遇到了文件名中的空格、符号链接、错误“Cannon create fifo:操作不允许”、“权限被拒绝”、“参数无效”等等问题。最好的方法是什么?能解决cp -a
这些问题吗?还是我应该做些更聪明的事情?
编辑:同样,在实时模式下,我没有权限查看主目录中的一个文件夹。我运行sudo nautilus
它来查看它。
编辑2:
到目前为止,我发现使用rsync
不会出现文件名问题。但它不会复制 .so 和 .a 文件。而且与 cp 相比,它的运行速度非常慢。
答案1
尝试一下这个命令:
cp -ar /source/dir/. /destination/dir/
-a 选项是一个改进的递归选项,它保留所有文件属性,也保留符号链接。
-ar 中的 r 是递归复制文件/目录的选项,它是复制文件所在文件夹内的文件夹所必需的。
源路径末尾的 . 是 cp 语法,允许您复制所有文件和文件夹,包括隐藏文件和文件夹。
由于 -a 选项保留文件属性,您需要使用 sudo 来查看它们或运行此命令。(更改用户和组名称)
sudo chown -r user:group /directory/of/file/backups
上述命令将使您成为备份文件的所有者。
答案2
事实证明这不是命令,这是一个问题。 user34716 发布的命令是正确的。必须使用cp -ar
来保留属性和符号链接。
但是,问题在于这些属性并非在所有文件系统中都具有。因此,如果磁盘不是 ext4 格式,最好创建存档。对于 liveCD,命令将是:
tar -c -z -f /my/backup/disk/home.tar.gz -C / media/ubuntu/deviceName/home