7 votes

Comment copier toutes les photos de la galerie sur un ordinateur de bureau linux ?

J'ai un tas de photos sur mon Samsung Galaxy Tab fonctionnant sous 3.2 que j'aimerais copier par USB sur ma machine principale fonctionnant sous Linux afin de pouvoir les travailler avec GIMP et d'autres outils puissants. Bien que cela semble être une chose simple et commune à faire, je n'ai trouvé aucun moyen de le faire après des heures de recherche sur Google et d'expérimentation.

Certaines réponses et articles déjà disponibles supposent l'existence d'une carte sdcard, que je n'ai pas (à ma connaissance), mentionnent des répertoires nommés /dcim ou /emmc (sp ?), impliquent un logiciel uniquement Windows tel que Kies, ou concernent un problème spécialisé non pertinent ici.

Je me suis dit que je pourrais fouiller dans le système de fichiers du Galaxy Tab avec adb, mais je n'ai trouvé aucun endroit où stocker des fichiers .jpg ou d'autres images, alors que je devrais en avoir au moins une trentaine. Si je connaissais le chemin, je pourrais simplement faire un adb pull pour obtenir mes photos.

Si c'est possible, je préfère utiliser adb pull, car cela peut être automatisé, mais je me demande aussi comment les gens ordinaires, les non-techniciens, obtiennent leurs photos sur leurs tablettes. J'ai lu des articles sur le MTP et j'ai appris que la méthode du périphérique de stockage de masse USB ne fonctionne pas avec le Galaxy Tab (ou tout autre appareil Samsung).

Juste pour être clair, mes photos existent sur la tablette. Je peux toutes les voir dans la Galerie, comme un utilisateur final normal. J'ai le bon câble USB, et adb fonctionne bien.

6voto

Sameer Sharma Points 909

Je suppose que vous avez un Galaxy Tab avec Honeycomb et que vous n'avez pas de fente pour carte SD, mais que vous avez 16/32 Go de stockage interne. Dans Honeycomb, le mode MTP (Windows Media Transfer Protocol) est utilisé à la place du stockage de masse USB. C'est pourquoi cela ne fonctionne peut-être pas pour vous.

Lisez d'abord ce qu'est le MTP et pourquoi il est utilisé par les OEM maintenant ici. MTP et ICS . Cette question devrait également être utile - Android Stack Exchange - Puis-je désactiver le mode MTP et me contenter d'une connexion USB normale ?

Avez-vous essayé d'activer le support MTP pour Linux ? Voici les étapes à suivre pour une distribution Ubuntu. Guide de configuration du MTP .

Ou bien en utilisant ADB Je crois que vous pouvez accéder aux fichiers de la galerie dans /mnt/sdcard/ . Le site sdcard devrait s'y trouver même si vous ne disposez pas d'un emplacement pour carte SD. Les photos de l'appareil photo se trouvent dans /DCIM dossier.

Les étapes complètes seraient (si quelqu'un a besoin de) -

adb shell
cd /mnt/sdcard/DCIM/

Vous pouvez vérifier quels dossiers existent ici et vérifier si vos fichiers multimédia s'y trouvent ou non.

1voto

starfry Points 395

J'ai écrit un petit script pour faire ça pour moi qui supprime les fichiers de l'appareil après le tirage :

#!/bin/sh
cleanup() {
    [[ -n "$dest" ]] && cd "$OLDPWD" && rmdir --ignore-fail-on-non-empty "$dest"
}
trap cleanup EXIT

DIRS=( /storage/emulated/0/DCIM/Camera
       /storage/emulated/0/Pictures/Office\ Lens )
dest=$(mktemp -d -p .) && cd $dest
echo output directory: $(pwd)
for dir in "${DIRS[@]}"
do
    echo downloading from $dir
    adb shell ls "'$dir'/*.jpg" 2>/dev/null | xargs -I{} -n 1 -d '\n' sh -c 'adb pull -a "$1" && adb shell rm "\"$1\"" && adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d \"file://$1\" || exit 255' -- {} || break
done

Le processus principal est une boucle exécutée une fois pour chaque répertoire $dir spécifié dans $DIRS qui se termine au premier échec.

El break empêche le traitement en cas d'erreur, de sorte que le script se termine au premier échec.

La boucle exécute une commande composée pour chaque répertoire listé dans $DIRS comme $dir . Le premier élément est simple :

ls "'$dir'/*.jpg" 2>/dev/null

Il fait ce qu'il dit sur l'étain - il liste tous les fichiers JPEG situés à l'adresse suivante $dir . Le site 2>/dev/null cache le No such file or directory Le message d'erreur qui serait autrement affiché lorsqu'il n'y a pas de tels fichiers.

La sortie de ls est acheminé vers xargs - l'ensemble des arguments {} comme placeholder, \n comme délimiteur et traite les fichiers un par un. La ligne de commande utilisée pour traiter chaque fichier est la suivante :

sh -c 'adb pull -a "$1" && adb shell rm "\"$1\"" && adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d \"file://$1\" || exit 255' -- {}

qui est elle-même une commande composée de trois adb les commandes exécutées par un sh qui reçoit le fichier en argument ( $1 ) spécifié par son {} placeholder.

La première commande télécharge le fichier :

adb pull -a "$1"

Si cela réussit, la deuxième commande supprime le fichier de l'appareil Android :

adb shell rm "\"$1\""

Les guillemets supplémentaires sont nécessaires pour que les noms de fichiers contenant des espaces blancs soient correctement transmis à la commande adb shell . Si cette commande réussit, la commande finale indique à l'appareil que le fichier a disparu :

adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d \"file://$1\"

Une fois de plus, la citation est appliquée pour adb shell . Cette étape est nécessaire pour mettre à jour les images répertoriées dans le fichier Galerie (sinon, ils peuvent être mis en cache et s'afficher quand même).

La commande composée se termine par exit 255 dans le cas où l'un des adb Les commandes échouent. Ceci a une signification particulière pour xargs et fait en sorte qu'il se termine sans traiter d'autres fichiers.

Il s'agit d'un script rapide et sale - il pourrait probablement être amélioré, mais nous espérons qu'il est utile tel quel.

0voto

Logos Points 3841

Si vous ne pouvez pas trouver vos fichiers facilement en utilisant ADB sur /mnt/sdcard (qui comme Sameer le mentionne est là où il devrait être, même si vous n'avez pas de carte SD externe), vous pouvez trouver plus facile d'utiliser un explorateur de fichiers local pour rechercher/gérer vos images. Pour de nombreuses distributions (comme Ubuntu), vous devez ajouter manuellement un identifiant usb pour le périphérique dans udev après avoir installé ADB.

0voto

CjS Points 196

Je ne pense pas que le système de fichiers des onglets Android soit universel.

Je n'ai pas joué avec la Galaxy Tab, mais sur mon Asus TF101, le stockage interne est dans /mnt/sdcard, alors que sur l'Acer Iconia de mon père, c'est /sdcard (IIRC).

D'après une rapide recherche sur Google, il semble que les photos de la Galaxy Tab sont stockées dans /sdcard/DCIM/Camera/ o /Data/DCIM/Camera/ pour le stockage interne ou peut-être /sdcard/external_sd/DCIM/Camera/ si vous utilisez la carte SD "externe".

Je rechercherais ces trois dossiers à l'aide d'un gestionnaire de fichiers sur votre appareil (ou ADB), puis j'utiliserais ADB pour les extraire comme vous l'avez décrit une fois que vous avez trouvé vos photos.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X