Hallo Leute,
ich habe versucht ein kleines Script zu schreiben, mit dem ich Dateien über MTP von meinem Handy (Sony Xperia Z) auf den Laptop kopieren kann. Wenn ich die Dateien mit Nautilus kopiere funktioniert das wunderbar. Alle Datien können am Laptop ganz normal verwendet werden. Wenn ich allerdings den Zugriff über das Script versuche erscheint die folgende Ausgabe:
1 2 3 4 5 6 7 8 9 10 11 12 | sven@sven-Latitude-E5430-vPro:~/Schreibtisch$ ./backup.sh changed to /home/sven/backup/. The new backup will be stored in the folder 100030462934. 1000 Copying all files and folders from /run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C003%5D/Interner Speicher to /home/sven/backup/100030462934 cp: Fehler beim Lesen von »15646544235-401515762-registration.pdf“: Eingabe-/Ausgabefehler cp: »/home/sven/backup/100030462934/15646544235-401515762-registration.pdf“ konnte nicht erweitert werden: Eingabe-/Ausgabefehler cp: Fehler beim Lesen von »592089.pdf“: Eingabe-/Ausgabefehler cp: »/home/sven/backup/100030462934/592089.pdf“ konnte nicht erweitert werden: Eingabe-/Ausgabefehler ... |
Teilweise werden Dateien auf dem Laptop im Zielordner erstellt, diese sind dann aber 0 Byte groß oder sie fehlen komplett. Liegt das am Script oder liegt eine Fehlfunktion von MTP vor?
Das Script sieht so aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #!/bin/bash destination=/home/$USER/backup/ #the directory where all backups will be stored at currentName=$UID$PPID$RANDOM #create a random named foldername for the new backup folder if [ ! -d "$destination" ]; then #check if the backup directory already exists mkdir "$destination" #if not create the destination directory fi cd "$destination" #go to the destination directory echo "changed to $destination." echo "The new backup will be stored in the folder $currentName." mkdir "$currentName" #create a random named folder where the new backup will be stored in userID=$(id -u $USER) #get the current user id echo $userID mtpDeviceName=$(ls /run/user/$userID/gvfs | grep mtp) #get the mount name of the mtp device cd /run/user/$userID/gvfs/$mtpDeviceName/'Interner Speicher' #go to the mtp folder echo "Copying all files and folders" echo "from /run/user/$userID/gvfs/$mtpDeviceName/Interner Speicher" echo "to $destination$currentName" cp -r * $destination$currentName #copy all files exit 0 |