내 SD 카드에 다음과 같은 폴더가 있습니다.
/mnt/sdcard/Folder1/Folder2/Folder3/*.jpg
Folder1과 Folder2의 이름은 일정하게 유지되고 Folder2에는 Folder3, 4, 5 등이 있습니다. adb를 사용하는 모든 파일 (더 많은 파일)이 아닌 모든 jpeg 파일을 컴퓨터의 현재 디렉터리로 가져오고 싶습니다. .
모든 폴더에는 jpeg 파일 및 기타 파일 수가 다르며 이것을 사용해 보았습니다.
adb pull mnt/sdcard/Folder1/Folder2/Folder/*.jpg .
하지만 작동하지 않았습니다. 그래서 어떻습니까? 어떻게 내가 SD 카드의 모든 폴더에있는 모든 파일을 단일 명령으로 끌어 올 수 있습니까 (각 폴더에 파일 수가 다르기 때문에 단일 명령)
답변
다음을 사용하는 단일 파일 / 폴더 pull
:
adb pull "/sdcard/Folder1"
산출:
adb pull "/sdcard/Folder1"
pull: building file list...
pull: /sdcard/Folder1/image1.jpg -> ./image1.jpg
pull: /sdcard/Folder1/image2.jpg -> ./image2.jpg
pull: /sdcard/Folder1/image3.jpg -> ./image3.jpg
3 files pulled. 0 files skipped.
find
from을 사용하는 특정 파일 / 폴더 BusyBox
:
adb shell find "/sdcard/Folder1" -iname "*.jpg" | tr -d '\015' | while read line; do adb pull "$line"; done;
다음은 설명입니다.
adb shell find "/sdcard/Folder1" - use the find command, use the top folder
-iname "*.jpg" - filter the output to only *.jpg files
| - passes data(output) from one command to another
tr -d '\015' - explained here: http://stackoverflow.com/questions/9664086/bash-is-removing-commands-in-while
while read line; - while loop to read input of previous commands
do adb pull "$line"; done; - pull the files into the current running directory, finish. The quotation marks around $line are required to work with filenames containing spaces.
스크립트는 최상위 폴더에서 시작하여 반복적으로 내려 가서 모든 “* .jpg”파일을 찾아 휴대폰에서 현재 디렉터리로 가져옵니다.
답변
새 Android 도구에서 디렉터리 가져 오기를 사용할 수 있습니다. (어떤 버전이 추가되었는지는 모르지만 최신 ADT 21.1에서 작동합니다.)
adb pull /sdcard/Robotium-Screenshots
pull: building file list...
pull: /sdcard/Robotium-Screenshots/090313-110415.jpg -> ./090313-110415.jpg
pull: /sdcard/Robotium-Screenshots/090313-110412.jpg -> ./090313-110412.jpg
pull: /sdcard/Robotium-Screenshots/090313-110408.jpg -> ./090313-110408.jpg
pull: /sdcard/Robotium-Screenshots/090313-110406.jpg -> ./090313-110406.jpg
pull: /sdcard/Robotium-Screenshots/090313-110404.jpg -> ./090313-110404.jpg
5 files pulled. 0 files skipped.
61 KB/s (338736 bytes in 5.409s)
답변
파일을 가져올 경로를 지정하여 시도하십시오. 방금 sdcard에서 파일을 얻었습니다.
adb pull sdcard/
검색 범위를 넓히거나 필터링하기 위해 * 좋아하는 것을주지 마십시오. 예 : adb pull sdcard / *. txt-> 이것은 유효하지 않습니다.
그냥 adb pull sdcard /
답변
예, 디렉토리를 재귀 적으로 가져 오려면 후행 슬래시를 사용하십시오. Nexus 5 및 최신 버전의 adb (2014 년 3 월)에서 저에게 적합합니다.
답변
ADB 버전 1.0.32를 사용하는 Android 6에서는 복사하려는 폴더를 / 뒤에 넣어야합니다. 예adb pull "/sdcard/".
답변
jellybean을 사용하는 경우 cmd를 시작하고 adb 장치를 입력하여 읽을 수 있는지 확인하고 adb pull sdcard / sdcard_ (날짜 또는 추가) <—이 파일을 미리 adb 디렉토리에 만들어야합니다. 이익!
다른 버전에서는 adb pull mnt / sdcard / sdcard_ (날짜 또는 추가)를 입력합니다.
파일을 만들지 않으면 엉망이되거나 작동하지 않습니다.
답변
루팅 된 기기에서 액세스가 제한된 디렉토리를 가져 오려면 adb를 root로 다시 시작해야합니다 adb root
. pull 전에 입력하십시오 . 그렇지 않으면 다음과 같은 오류가 발생합니다.remote object '/data/data/xxx.example.app' does not exist