Linux Mint 13'ü kullanarak, USB üzerinden bağlı bir Android'e dosya ve dizin kopyalamak için ADB yapmaya çalışıyorum. Zaman damgalarını korumanız gerekir.
(Unix’te sadece Zaman Değiştirme’nin saklandığını biliyorum).
Googling'den bir emir aldım ama fazla anlamadım. Bağlantı aşağıda. https://android.stackexchange.com/questions/35580/how-can-i-transfer-photos-to-my-android-jelly-bean-device-while-preserving-the-o
ADB'dan sonra "FROM" "ANDROID_PHONE" tuşlarına basıp aşağıdaki komutu kullanıyorum:
find . | while read file; do timestamp_stat=$(stat -c "%y" "$file"); timestamp=$(date +"%Y%m%d.%H%M%S" -d "$timestamp_stat"); echo "$timestamp: $file"; adb shell su -c "touch -t $timestamp \"/sdcard/ANDROID_PHONE\""; done
Yukarıdaki komutun, yalnızca dosya adları ve dizinler için boşluk içermeyen zaman damgalarını kopyalamak için Dokunmatik'yı kullandığını anlıyorum. Hata mesajlarını alın, örn. Bilinmeyen kimlik: boşluklu olanlar için R.
Kodu nasıl değiştirmeliyim?
adbkabuk yeniden genişler. adbKomutun hangi dosya touchüzerinde çalışması gerektiğini bilmesi gerektiğini hala anlamıyorum ; ya da ipte özel bir şey var ANDROID_PHONEmı? Geçmişte, Android'i bir USB sürücüsü olarak monte ettim cp --preserve=allve zaman damgalarını başvurmadan korumak için normal kopyayı ( ) kullandım adb. Şimdi WiFi üzerinden kopyalamak için Android'de bir dosya yönetimi uygulaması kullanıyorum ve bu da onları koruyor.
touchAndroid'deki komut touch -t $timestamp "/sdcard/ANDROID_PHONE/$file"o zaman problemin çifte açılım olduğunu görebiliyorum, ancak onsuz "$file"nasıl çalışması gerektiğini takip edemiyorum. Geçerken, dizin zaman damgalarını değiştirmenin olağandışı olduğunu, çünkü içerilen bir dosya veya alt dizin her oluşturulduğunda, silindiğinde ya da yeniden adlandırıldığında güncellenir.
file="$(line)"Bunun yerine kullanırsanızread file, o"$file"zaman öndeki veya sondaki boşlukları (veya yeni satırların dışında diğer karakterleri) içerir. Eğer yoksaline, eşdeğeri kullanabilirsinizhead -n 1. Ama olmamalıdır"$file"içindeadbçağrı?