You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中使用cp命令复制目录提示Cross-device link问题排查与解决

错误原因

即使源目录/data/data/com.vivaldi.browser/app_chrome/和目标目录/data/local/tmp/zip/都在data卷下,仍触发跨设备链接错误,大概率是以下两种情况:

  • /data/local/tmp是**tmpfs(内存文件系统)**挂载的,它的设备ID和实际存储/data的物理设备不一致,cp命令检测到设备号不同,判定为跨设备。
  • 目标目录是通过bind mount创建的挂载点,这种情况下挂载点的设备属性和原路径不一致,也会被cp识别为不同设备。
    另外,cp默认尝试用硬链接的方式复制文件(尤其是目标目录已存在时),而硬链接不支持跨设备,这也是报错的直接触发点。

解决方法

方法1:使用递归复制参数,强制复制文件而非硬链接

直接给cp加上-a参数(归档模式,递归复制并保留权限、属性等),或者-r参数(仅递归复制),同时如果目标目录已存在,建议将源目录内的内容复制到目标目录下:

# 复制源目录内所有内容到目标目录
cp -a /data/data/com.vivaldi.browser/app_chrome/. /data/local/tmp/zip/

如果目标目录zip还未创建,直接执行以下命令会自动创建目标目录并完整复制源目录:

cp -a /data/data/com.vivaldi.browser/app_chrome/ /data/local/tmp/zip/

方法2:先清空目标目录再复制

如果目标目录已有内容,先删除目标目录再重新复制,避免cp尝试硬链接已存在的文件:

rm -rf /data/local/tmp/zip/ && cp -a /data/data/com.vivaldi.browser/app_chrome/ /data/local/tmp/zip/

方法3:使用rsync替代cp(可选)

如果cp还是有问题,rsync对跨设备复制的兼容性更好,同样支持一次性复制多个文件/目录:

rsync -a /data/data/com.vivaldi.browser/app_chrome/ /data/local/tmp/zip/

内容的提问来源于stack exchange,提问作者Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 15:39:58