【问题标题】:Exclude a folder from android's ADB PULL从 android 的 ADB PULL 中排除一个文件夹
【发布时间】:2019-09-05 16:41:43
【问题描述】:

所以我正在尝试对我的 Galaxy S8 的 SD 卡(实际的可移动 sd 卡)进行完整备份。所以我正在使用 Android ADB 功能来使用它;我使用以下命令备份我的 SD 卡;

"adb pull /storage/5C60-4517/" --> 这完全没问题,但是我有一个问题。

在我的 SD 卡中,我有一个名为“PCMusic” 的文件夹,其中存储了我所有的音乐。这与我在 PC 和网络硬盘上的音乐相同,所以我想做的是仅排除这个文件夹,因为我的 PC 硬盘上已经有所有这些音乐。这个文件夹大约 17GB,所以它在备份我的 SD 卡时浪费了足够多的时间。此文件夹位于 SD 卡的根驱动器上。

所以我想知道使用命令,我怎样才能从 sd 卡的根目录中排除这个 ONE 文件夹?我想备份 sd 卡中的所有其他内容,除了名为“PCMusic”的音乐文件夹。

谢谢。 (我只是一个新手!进入 Android 两个月!)

【问题讨论】:

    标签: android adb


    【解决方案1】:

    我在同样的问题上苦苦挣扎,但对于我的内部 sd。我认为 adb 没有内置选项,但如果您使用的是 linux;这个'for循环'与'find'命令(当然可以根据个人需要修改)在我的内部sd上为我工作:

    for file_or_dir in "`sudo adb shell find /sdcard/ ! -name "'Music'" -maxdepth 1 -mindepth 1`"
        do sudo adb pull "${file_or_dir}" /path/to/target/sdcard
    done
    

    此命令使用“adb shell”在设备本身上执行“查找”命令,这导致 /sdcard 中的所有文件和目录的列表与名称“音乐”不匹配(sudo adb shell find /sdcard ! -name '音乐' -maxdepth 1 -mindepth 1)。

    然后它会遍历这个文件和目录列表,并单独将它们全部拉到 /path/to/target/sdcard/。 (如果你有适当的 udev 规则,'sudo' 可以省略)

    (基于此 reddit 评论:https://www.reddit.com/r/Android/comments/hnfo5/adb_wildcard_pull/c1wsmic/

    【讨论】:

    • 这是一种非常无效的方法。在设备端使用tar 并将其在PC 端的标准输出重定向到文件。使用tar 命令行参数排除您选择的文件和文件夹。
    • 你介意分享一个例子吗?因为我看不到在几个目录上使用 adb pull (通常手动执行)是非常无效的。
    • 仅供参考:这不处理文件夹名称中的空格
    • 谢谢,我稍微修改了我的答案(使用反引号和双引号而不是括号),因此它应该支持查找结果中的空格。
    猜你喜欢
    • 2011-01-25
    • 2014-11-12
    • 2012-01-28
    • 1970-01-01
    • 2012-03-04
    • 2020-06-17
    • 2012-11-30
    • 2013-05-17
    • 2020-05-05
    相关资源
    最近更新 更多