"অ্যাডবি টান" দিয়ে কীভাবে কেবল নতুন ফাইলগুলি টানবেন? (অ্যান্ড্রয়েড এসডিকে ইউটিলিটি)


13

"অ্যাডবি পুল / এসডিকার্ড /" কমান্ডের সাহায্যে আমি আমার অ্যান্ড্রয়েড ফোনের অভ্যন্তরীণ মেমরির সমস্ত বিষয়বস্তু আমার বর্তমান স্থানীয় ডিরেক্টরিতে অনুলিপি করতে পারি (এবং "অ্যাডবি পুল / এমএনটি / এক্সএসডি কার্ড /" বহিরাগত এসডি কার্ডের সাথে একই কাজ করে)। তবে এই কমান্ডটি সর্বদা সমস্ত কিছু অনুলিপি করে এমনকি এমনকী আমি ইতিমধ্যে স্থানীয়ভাবে সঞ্চিত ফাইলগুলিও অনুলিপি করি।

কেবলমাত্র নতুন এবং পরিবর্তিত ফাইলগুলি অনুলিপি করার কোনও উপায় আছে? (নতুন তারিখ সহ ফাইলগুলি)

উত্তর:


9

Ss-3-1415926535897932384626433 দ্বারা বর্ণিত হিসাবে এখানে কোনও পতাকা নেই, তবে আপনাকে প্রথমে ফাইলগুলির একটি তালিকা পেতে হবে এবং তারপরে আপনার স্থানীয় ফাইলগুলি মিলছে কিনা তা পরীক্ষা করে দেখতে হবে। আমি এটির জন্য একটি ছোট স্ক্রিপ্ট লিখেছি:

#!/bin/sh

rfolder=/sdcard/DCIM/Camera
lfolder=Camera

adb shell ls "$rfolder" > android.files

ls -1 "$lfolder" > local.files

rm -f update.files
touch update.files

while IFS=  read -r q; do
  # Remove non-printable characters (are not visible on console)
  l=$(echo ${q} | sed 's/[^[:print:]]//')
  # Populate files to update
  if ! grep -q "$l" local.files; then         
    echo "$l" >> update.files
  fi  
done < android.files

script_dir=$(pwd)
cd $lfolder

while IFS=  read -r q; do
  # Remove non-printable characters (are not visible on console)
  l=$(echo ${q} | sed 's/[^[:print:]]//')
  echo "Get file: $l"
  adb pull "$rfolder/$l"
done < "${script_dir}"/update.files

রিমোট ফোল্ডার rfolderএবং স্থানীয় ফোল্ডারটি lfolderআপনার নিজের পছন্দ মতো স্থানে সমন্বয় করুন ।


এটি দেখতে বেশ ভাল লাগছে। এটি কি পুনরাবৃত্তভাবে বা কেবল একটি একক ডিরেক্টরিতে এবং কোনও উপ-ডিরেক্টরিতে কাজ করে?
ওএমএ

এটি প্রকৃতপক্ষে পুনরাবৃত্তিযোগ্য তবে উন্নতি করতে নির্দ্বিধায়। :-)
আন ভ্যান রসম

আরও মনে রাখবেন যে আমি এখনও এখানে তারিখগুলি তুলনা করি না, সুতরাং আপনি যদি ফাইল পরিবর্তন করেন তবে সেগুলি আপডেট হবে না।
অ্যান ভ্যান রসম

7

অ্যাডবি-সিঙ্ক - ছোট, তবে পাওয়ারফুল পাইথন স্ক্রিপ্ট যা আপনার জিজ্ঞাসিত এবং আরও অনেক কিছু করতে পারে ... https://github.com/google/adb-sync


যদিও লিঙ্কটি এই ব্যবহারকারীর জন্য উত্তর হতে পারে তবে এটিকে কাজ করার জন্য পদ্ধতি এবং প্রক্রিয়াটি পুরোপুরি ব্যাখ্যা করা ভাল। android.stackexchange.com/help/how-to-answer
আচেজাভেলিন

উল্লেখ করার জন্য ধন্যবাদ। এটি আমার ব্যবহারের ক্ষেত্রে কাজ করার জন্য সোর্স কোডে বেশ কয়েকটি পরিবর্তন আনতে হয়েছিল (উইন্ডোজটির অবৈধ পথগুলি ক্র্যাশ ঘটায়, পাইথন সংস্করণটি আপাতদৃষ্টিতে মিলেছে না, ইত্যাদি - বিশদর জন্য, আমি মন্তব্য করা সমস্যাগুলি দেখুন), তবে এটি শেষ হয়েছিল দূষিত ডেটা পার্টিশন থেকে আমি আমার ফাইলগুলি পুনরুদ্ধার করতে সক্ষম হয়েছি। (পুরো ডিরেক্টরিটির অ্যাডবি টান বিভিন্ন ফাইলে ক্র্যাশ হয়ে যায় এবং আমি নিজেই প্রত্যেকটিকে মুছতে চাইতাম না এবং পুরো ট্রান্সফারটি পুনরায় শুরু করতে চাইতাম - অ্যাডবি-সিঙ্কের সাথে [+ আমার পরিবর্তনগুলি] এটি কেবল একটি ফাইল ব্যর্থ হবে তারপরে চালিয়ে যান)
ভেনরিক্স

4

adb pull নির্বাচিত ফাইলগুলি টানতে কোনও পতাকা সরবরাহ করে বলে মনে হচ্ছে না

কার্যকারণ হিসাবে, আপনি এটি করতে পারেন: adb shell [Unix shell command]নির্বাচিত ফাইলগুলি অস্থায়ী স্থানে অনুলিপি করতে এবং তারপরে সেই অবস্থান থেকে সমস্ত ফাইল টানুন।

আপডেট:
আপনি cp -u [source] [destination]পরবর্তী সময়ে কেবলমাত্র পরিবর্তিত ফাইলগুলি অনুলিপি করতে ইউনিক্স শেল কমান্ডটি ব্যবহার করতে পারেন । -rএটি প্রয়োজন হলে সাব-ডাইরেক্টরিজগুলিতে পুনরাবৃত্তির ক্ষেত্রে এটি ব্যবহার করতে আপনি পতাকাও ব্যবহার করতে পারেন।


আপনার উত্তরের জন্য ধন্যবাদ. সমস্ত ফাইল অন্য স্থানে অনুলিপি করা হতে পারে কেবলমাত্র একটি পরিবর্তিত ফাইল আপডেট করা বেশ ধীর। খুব খারাপ যে অ্যাডবি কেবল নতুন ফাইলগুলি অনুলিপি করার জন্য প্ররোচিত করে না।
ওএমএ

@ ওএমএ আপনি নতুন ফাইলগুলির একটি তালিকা পেতে শেলটি ব্যবহার করতে পারেন এবং তারপরে adb pullসেই তালিকাটিতে ব্যবহার করতে পারেন ।
ম্যাথু

@ ম্যাথেরএই কীভাবে করবেন তার কোনও ইঙ্গিত? ধন্যবাদ!
ওএমএ

@ ওএমএ আমি আপনার এই সমস্যাটি বুঝতে অক্ষম। উভয় কমান্ড এক লাইনে ব্যবহার করুন বা উপনাম তৈরি করুন (অপারেশনের পরে অস্থায়ী অবস্থানের জন্য কমান্ড যুক্ত করুন)। যদি এর জন্য যদি অ্যাডবি টানার পতাকা থাকে তবে এটি একইভাবে কাজ করবে।
অ্যান্ড্রয়েড কুইসিতো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.