android - 如何在不使用 adb 的情况下将数据的内容/复制到 sdcard/?

标签 android

您好,我需要将 data/tombstones 的内容复制/移动到 sdcard/tombstones

我正在使用以下命令:

mv data/tombstones /sdcard/tombstones

"failed on 'tombstones' - Cross-device link"

但我遇到了错误。

最佳答案

你有一个健全的 mv 命令版本

从 xda 的 lbcoder 和 androidforums 的 darkxuser 转述几位

"failed on 'tombstones' - Cross-device link"

这意味着您不能在一个设备(文件系统)上创建指向不同文件系统上的文件的硬链接(hard link)。

这是一个古老的 unix 事物。您不能使用大多数 mv 实现跨文件系统移动文件。 mv 不是为了将数据从设备复制到设备,它只是更改文件在分区内的位置。 由于/data 和/sdcard 是不同的分区,所以失败了。

认为你自己很幸运,你有一个 SANE 版本的 mv 命令,它无论如何都不会尝试 - 一些旧版本实际上会尝试这样做,这将导致指向 NOTHING 的硬链接(hard link)和原始数据无法访问。

The mv command does NOT MOVE THE DATA!!! It moves the HARDLINK TO THE DATA.

如果要将文件移动到不同的文件系统,则需要使用“cp”命令。复制该文件以在不同的文件系统上创建它的 SECOND COPY,然后使用“rm”命令删除旧的。

一个简单的移动命令:

#!/bin/bash
dd if="$1" of="$2"
rm -f "$1"

您会注意到“cp”命令根据复制是否成功返回真或假,因此只有在文件复制成功时才会删除原始文件。

#!/bin/bash
cat data/tombstones > sdcard/tombstones
rm data/tombstones

可以将这些脚本复制到 PATH 变量引用的某个位置并设置可执行文件。


不同的接口(interface)

If you need a different interface from adb you may move files using the FileExplorer in DDMS View.

旁注:

您可以在以下情况下将文件移动到文件夹中:

  • 你是 root;
  • 这是你的应用目录;
  • 您已使用 adb 或其他地方的 chmod 更改权限

关于android - 如何在不使用 adb 的情况下将数据的内容/复制到 sdcard/?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3555755/

相关文章:

java - 字符串转 BigDecimal

Android 应用内购买 - RESULT_ITEM_UNAVAILABLE

android - 执行 http POST 返回 HTML 而不是 JSON

android - 如何在 android 中调用 Https Rest 服务

android - 如何在 xml 和类中将图像设置为按钮

java - react-native deploy to android device error 3 Activity 类不存在

android - 未调用 AImageReader 的 onImageAvailable 回调

java - 多平台Base64编解码问题(Android to PC)

android - 如何在android中中止BroadcastReceiver

android - 在 Flutter 上运行测试显示 'Error: No Bazel Target Set'