如何使用“adb pull”拉出较新的文件? (Android SDK实用程序) -- adb 领域 android 相关 的问题

How to pull only newer files with “adb pull”? (Android SDK utility)


简体版||繁體版
13
vote

问题

中文

使用命令"adb pull / sdcard /" 我可以将我的Android手机内部内存的所有内容复制到我当前的本地目录(和"adb pull / mnt / extsdcard / extsdcard /" 与外部SD相同卡片)。但该命令总是复制一切,即使是我已经本地存储的文件也是如此。

是否有任何方法可以复制新的和修改文件? (带有更新日期的文件)

english

With the command "adb pull /sdcard/" I can copy all the contents of the internal memory of my Android phone into my current local directory (and "adb pull /mnt/extSdCard/" does the same with the external SD card). But that command always copies everything, even files I already have stored locally.

Is there any way to copy only new and modified files? (files with a newer date)

  

回答列表

9
 
vote
vote
最佳答案
 

如ss-3-1415926535897932384626433没有标志,但你必须先获取文件列表,然后检查您的本地文件是否匹配。我为它写了一点脚本:

  #!/bin/sh  rfolder=/sdcard/DCIM/Camera lfolder=Camera  adb shell ls "$rfolder" > android.files  ls -1 "$lfolder" > local.files  rm -f update.files touch update.files  while IFS=  read -r q; do   # Remove non-printable characters (are not visible on console)   l=$(echo ${q} | sed 's/[^[:print:]]//')   # Populate files to update   if ! grep -q "$l" local.files; then              echo "$l" >> update.files   fi   done < android.files  script_dir=$(pwd) cd $lfolder  while IFS=  read -r q; do   # Remove non-printable characters (are not visible on console)   l=$(echo ${q} | sed 's/[^[:print:]]//')   echo "Get file: $l"   adb pull "$rfolder/$l" done < "${script_dir}"/update.files   

调整远程文件夹 rfolder 以及本地文件夹 lfolder 到您自己选择的位置。

 

As described by ss-3-1415926535897932384626433 there is no flag, but you have to get a list of files first and then check if your local files match. I wrote a little script for it:

#!/bin/sh  rfolder=/sdcard/DCIM/Camera lfolder=Camera  adb shell ls "$rfolder" > android.files  ls -1 "$lfolder" > local.files  rm -f update.files touch update.files  while IFS=  read -r q; do   # Remove non-printable characters (are not visible on console)   l=$(echo ${q} | sed 's/[^[:print:]]//')   # Populate files to update   if ! grep -q "$l" local.files; then              echo "$l" >> update.files   fi   done < android.files  script_dir=$(pwd) cd $lfolder  while IFS=  read -r q; do   # Remove non-printable characters (are not visible on console)   l=$(echo ${q} | sed 's/[^[:print:]]//')   echo "Get file: $l"   adb pull "$rfolder/$l" done < "${script_dir}"/update.files 

Adjust the remote folder rfolder and the local folder lfolder to locations of your own choice.

 
 
     
     
7
 
vote

adb-sync - small,但功能强大的python脚本可以完成所有要求的...... https://github.com/google/adb-sync

 

adb-sync - small, yet powerfull python script that can do all your asked and more... https://github.com/google/adb-sync

 
 
   
   
4
 
vote

adb pull 似乎没有提供旗帜选定的文件。

作为解决方法,您可以执行此操作:使用 adb shell [Unix shell command] 将所选文件复制到临时位置,然后从该位置中拉所有文件。

更新:
您可以使用 cp -u [source] [destination] unix shell命令来在后续运行时仅复制修改后的文件。您还可以使用 -r 标志来在子目录上使用它,如果需要。

 

adb pull doesn't seem to provide a flag to pull selected files.

As a workaround, you can do this: Use adb shell [Unix shell command] to copy selected files to a temporary location and then pull all files from that location.

Update:
You can use cp -u [source] [destination] unix shell command to copy only modified files on subsequent run. You can also use -r flag to use it on subdirectories recursive, if its required.

 
 
       
       

相关问题

13  如何使用“adb pull”拉出较新的文件? (Android SDK实用程序)  ( How to pull only newer files with adb pull android sdk utility ) 
使用命令"adb pull / sdcard /" 我可以将我的Android手机内部内存的所有内容复制到我当前的本地目录(和"adb pull / mnt / extsdcard / extsdcard /" 与外部SD相同卡片)。但该命令总是复制一切,即使是我已经本地存储的文件也是如此。 是否有任何方法可以复制新...

49  有没有办法让我以root身份运行adb shell而无需打字“su”?  ( Is there a way for me to run adb shell as root without typing in su ) 
有没有办法让我以root身份运行adb shell而无需键入 su ?我希望能够在没有进入shell的情况下获得root访问权限。 ...

1  xiaomi m8se fastboot循环尝试安装twrp时  ( Xiaomi m8se fastboot loop when trying to install twrp ) 
在尝试安装TWRP时(Xiaomi Mi 8se的最新版本),我设法使用adb安装最新的twrp(Fastboot闪存恢复"C: Program Files(x86) minimal adb和fastboot twrp.img)。 但是,一旦我引导到TWRP,它不会将其设置为默认加载程序。 在擦除数据后,尝试在此处...

3  adb shell命令可以测试mls / spc代码? [关闭]  ( Adb shell command that can test mls spc codes ) 
这个问题不太可能帮助任何未来的访客;它仅与小地理区域,特定时刻及时的特定时刻或非常狭窄的情况,这些情况通常不适用于互联网的全球观众。有关帮助提出这个问题更广泛适用,请访问帮助中心。 ...

3  我的nexus 4上的adb问题(未经授权的电话)  ( Problem with adb on my nexus 4 unauthorized phone ) 
在CMD中运行adb设备时,它表示我的手机未经授权。似乎它与RSA指纹提示有关。我不记得曾经得到这样的提示。是的,我在PTP模式下运行,并启用调试。我尝试过多个小时的互联网尝试: 启用/禁用调试模式反复 卸载并重新安装我的手机或adb 的驱动程序 adb-killserver 和 adb-startserver...

0  在Amazon 4K Fire TV Stick上启动循环  ( Boot looping on amazon 4k fire tv stick ) 
我正在使用我的亚马逊4k火电视。 昨天,我不得不将遥控器搭配在我们家中的另一个棍子(因为有人忘记自己的偏远),从那时起,棍子已经用橙色亚马逊字体启动了白色背景,称'火灾电视'。同样,我不确定如何在设备上安装Google Play可能也导致了技术难度,其中一些在网络上声称。 我已经联系过亚马逊,让我走到几个顾问,所...

7  如何使用adb更改“首选网络模式”而无需重新启动?  ( How to change preferred network mode using adb without reboot ) 
我正在尝试将手机的(cm 12,股票4.2,rooted)首选的网络模式从"gsm / wcdma" (0)更改为"WCDMA仅" (2),反之亦然(可以有其他模式也是)仅使用命令行。基于这个答案我可以使用命令将相关变化与 Settings.db 进行相关变化: adb shell su settings...

0  强制使用Android平板电脑从PC连接到WiFi  ( Forcing an android tablet to connect to a wifi from pc ) 
遍之前,我有一个平板电脑(Coby Kyros Mid9742),当屏幕戒烟时(触摸屏的一半不识别触摸,在2个部分中分开)。 我试图通过HDMI电缆将平板电脑作为视频播放器用于投影仪,我的旧电话(Galaxy S,No Stuity)作为遥控器。我已经使用第三方应用程序效果了。 但主要问题是将平板电脑连接到WiFi使...

1  我用odin闪现回收力,为什么我的手机启动弓?  ( I flashed recoveries with odin why doesnt my phone boot bow ) 
三星S3 Android手机,没有植根,库存固件。 按时间顺序排列: 我打开了USB调试,虽然无法使用FastBoot。 我用odin来闪现多次恢复,但我不认为我成功了,我相信手机必须先扎根。我下载了一些reposties作为.tar.md5,但我也下载了.img,我试图将它变成了.gz - 在那个阶段我的手机仍然...

3  可以在笔册(ofrooted)上使用“adb remount”?  ( Can adb remount be used on a stock phone unrooted ) 
是否可以使用 adb remount 使用标准固件,而无需根根设备?如果没有,是否有另一种方法可以强制系统制作/系统在没有根根的情况下写入? ...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有