39 Stimmen

Wie Sie ausgewählte Dateien von Android mit adb pull kopieren

Ich versuche, den adb pull Befehl zu verwenden, um nur bestimmte Dateien (jpg) auf meinen Macbook zu kopieren. Ich habe versucht "adb pull sdcard/mydir/*.jpg", aber offensichtlich interpretiert es Platzhalter nicht. Wie kann ich nur die jpg Dateien kopieren? Ich habe das Telefon gerootet, falls das hilft.

75voto

Michał Zieliński Punkte 1307

Sie können Ihre Dateien in einen anderen Ordner verschieben und dann den gesamten Ordner ziehen.

adb shell mkdir /sdcard/tmp
adb shell mv /sdcard/mydir/\*.jpg /sdcard/tmp # verschieben Sie Ihre JPEGS in das temporäre Verzeichnis
adb pull /sdcard/tmp/ # ziehen Sie diesen Ordner (stellen Sie sicher, dass am Ende '/' steht)
adb shell mv /sdcard/tmp/\* /sdcard/mydir/ # verschieben Sie sie zurück
adb shell rmdir /sdcard/tmp # temporäres Verzeichnis entfernen

15voto

Paschalis Punkte 11227

Mehrere Dateien mit Regex abrufen:

Erstellen Sie pullFiles.sh:

#!/bin/bash
HOST_DIR=
DEVICE_DIR=/sdcard/
EXTENSION=".jpg"

for file in $(adb shell ls $DEVICE_DIR | grep $EXTENSION'$')
do
    file=$(echo -e $file | tr -d "\r\n"); # EOL fix
    adb pull $DEVICE_DIR/$file $HOST_DIR/$file;
done

Führen Sie es aus:

Machen Sie es ausführbar: chmod +x pullFiles.sh

Führen Sie es aus: ./pullFiles.sh

Anmerkungen:

  • wird nicht funktionieren, wenn Dateinamen Leerzeichen enthalten
  • enthält eine Lösung für das Zeilenende (EOL) auf Android, das "\r\n" ist

0voto

Werner Punkte 1

Was das kurze Skript betrifft, läuft das Folgende auf meinem Linux-Host

#!/bin/bash
HOST_DIR=
DEVICE_DIR=/sdcard/
ERWEITERUNG="\.jpg"

while read DATEI ; do
    adb pull "$DEVICE_DIR/$DATEI" "$HOST_DIR/$DATEI"
done < $(adb shell ls -1 "$DEVICE_DIR" | grep "$ERWEITERUNG")

"ls minus eins" lässt "ls" eine Datei pro Zeile anzeigen, und die Anführungszeichen ermöglichen Leerzeichen im Dateinamen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X