尝试使用以下命令将目录“max7219”(包括子目录和文件)从一个 USB 驱动器复制到另一个 USB 驱动器失败:
ubuntu@ubuntu:~$ cp -pr /dev/sdb2/media/ubuntu/rootfs/max7219 /dev/sdc2/media/ubuntu/rootfs1/
显示错误:
cp: failed to access '/dev/sdc2/media/ubuntu/rootfs1/': Not a directory
“lsblk”(省略 Snap 安装应用程序的‘loopXX’设备)显示:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 100M 0 part
└─sda2 8:2 0 931.4G 0 part
sdb 8:16 1 14.4G 0 disk
├─sdb1 8:17 1 42.9M 0 part /media/ubuntu/boot
└─sdb2 8:18 1 14.4G 0 part /media/ubuntu/rootfs
sdc 8:32 1 59.7G 0 disk
├─sdc1 8:33 1 256M 0 part /media/ubuntu/boot1
└─sdc2 8:34 1 59.4G 0 part /media/ubuntu/rootfs1
sr0 11:0 1 2G 0 rom /cdrom
我哪里做错了?
谢谢大卫
答案1
在文件级别进行复制
你应该在挂载点之间复制
cp -pr /media/ubuntu/rootfs/max7219 /media/ubuntu/rootfs1/
或者如果你需要提升权限才能写入
sudo cp -pr /media/ubuntu/rootfs/max7219 /media/ubuntu/rootfs1/
/dev/sdb2
/dev/sdc2
应删除前缀。
分区级别克隆
如果你克隆,您应该使用分区的设备名称(但不应有文件路径)
sudo cp /dev/sdb2 /dev/sdc2
但这是一个非常危险操作,因为一个小小的输入错误都可能导致您覆盖其他分区中的宝贵数据。
答案2
您的 CLI 命令
cp -pr /dev/sdb2/media/ubuntu/rootfs/max7219 /dev/sdc2/media/ubuntu/rootfs1/
告诉您的系统以递归方式复制并保留默认属性:
模式、所有权、时间戳,如果可能的话还有更多属性:上下文、链接、xattr、全部
从
/dev/sdb2/media/ubuntu/rootfs/max7219 (目录)
到
/dev/sdc2/media/ubuntu/rootfs1/(分区名称)
复制并不意味着使用分区作为目标,因为男人 cp。相反,你需要告诉 cp 将这些文件放在 /dev/sdc2/ 中的什么位置