একাধিক ফাইল ব্যবহার করে টানানোর সর্বোত্তম উপায় কী
adb pull
আমার নীচে /sdcard/নাম সহ 25 টি ফাইল রয়েছে:
gps1.trace
gps2.trace
...
gps25.trace
ওয়াইল্ডকার্ড কাজ করে না:
adb pull /sdcard/gps*.trace .
একাধিক ফাইল ব্যবহার করে টানানোর সর্বোত্তম উপায় কী
adb pull
আমার নীচে /sdcard/নাম সহ 25 টি ফাইল রয়েছে:
gps1.trace
gps2.trace
...
gps25.trace
ওয়াইল্ডকার্ড কাজ করে না:
adb pull /sdcard/gps*.trace .
DDMSগ্রহনের দৃষ্টিকোণে ফাইল এক্সপ্লোরার চেষ্টা করেছি এবং আমার এসডকার্ড থেকে ফাইলগুলি বহু-নির্বাচন করতে এবং pullসেগুলি সম্পাদন করতে সক্ষম হয়েছি । আপনি যদি গ্রহনটি ব্যবহার না করেন তবে ডিডিএমএস পৃথক এসডিকে সরঞ্জাম হিসাবে উপলব্ধ।
monitorকমান্ড দুর্দান্ত কাজ করে, থাকা উচিত <sdkdir>/tools!
উত্তর:
আপনি ব্যবহার করতে পারেন xargsএবং adb shell lsকমান্ডের ফলাফল যা ওয়াইল্ডকার্ড গ্রহণ করে। এটি আপনাকে একাধিক ফাইল অনুলিপি করতে দেয়। বিরক্তিকরভাবে adb shell lsকমান্ডের আউটপুটটিতে লাইন-ফিড নিয়ন্ত্রণের অক্ষর রয়েছে যা আপনি ব্যবহার করে মুছে ফেলতে পারেন tr -d '\r'।
উদাহরণ:
adb shell 'ls sdcard/gps*.trace' | tr -d '\r' | xargs -n1 adb pull
adb shell 'ls /sdcard/*.txt' | tr -d '\r' | sed -e 's/^\///' | xargs -n1 adb pull
adb shell "ls -d /mnt/sdcard/Pictures/Screenshots/*" | tr '\r' ' ' | xargs -n1 adb pull
adb pull ফাইলের পরিবর্তে ডিরেক্টরি নাম পেতে পারে এবং এটি এতে সমস্ত ফাইল সহ ডিরেক্টরি টানবে।
আপনার সমস্ত জিপিএস ট্রেসকে / এসডিকার্ড / জিপিএসট্রেসগুলিতে টানুন
adb pull /sdcard/gpsTraces/ .
পুনরাবৃত্ত ডিরেক্টরিগুলির উদাহরণ adb pullএবং adb push:
C:\Test>adb pull /data/misc/test/ .
pull: building file list...
pull: /data/misc/test/test1/test2/test.3 -> ./test1/test2/test.3
pull: /data/misc/test/test1/test2/test.2 -> ./test1/test2/test.2
pull: /data/misc/test/test1/test2/test.1 -> ./test1/test2/test.1
pull: /data/misc/test/test1/test.3 -> ./test1/test.3
pull: /data/misc/test/test1/test.2 -> ./test1/test.2
pull: /data/misc/test/test1/test.1 -> ./test1/test.1
pull: /data/misc/test/test.3 -> ./test.3
pull: /data/misc/test/test.2 -> ./test.2
pull: /data/misc/test/test.1 -> ./test.1
9 files pulled. 0 files skipped.
0 KB/s (45 bytes in 0.093s)
C:\Test>adb push . /data/misc/test/
push: ./test1/test2/test.3 -> /data/misc/test/test1/test2/test.3
push: ./test1/test2/test.2 -> /data/misc/test/test1/test2/test.2
push: ./test1/test2/test.1 -> /data/misc/test/test1/test2/test.1
push: ./test1/test.3 -> /data/misc/test/test1/test.3
push: ./test1/test.2 -> /data/misc/test/test1/test.2
push: ./test1/test.1 -> /data/misc/test/test1/test.1
push: ./test.3 -> /data/misc/test/test.3
push: ./test.2 -> /data/misc/test/test.2
push: ./test.1 -> /data/misc/test/test.1
9 files pushed. 0 files skipped.
0 KB/s (45 bytes in 0.062s)
./adb pull /sdcard <- ব্যর্থ
./adb pull /sdcard/ <- পুনরাবৃত্তভাবে কাজ করে - পিছনের স্ল্যাশটি নোট করুন
Nexus 5 এর সাথে পরীক্ষিত এবং মার্চ ২০১৪ এডবি ডাউনলোড হয়েছে।
'Ls' থেকে আউটপুট পার্স করা সাধারণত একটি খারাপ ধারণা। পরিবর্তে, 'অনুসন্ধান' ব্যবহার করুন।
adb shell 'find /sdcard/ -name "gps*.trace" -print0' | xargs -0 -n 1 adb pull
যদিও adb pullকমান্ড রিমোট প্যারামিটারের ফোল্ডারের নাম গ্রহণ করতে শুরু করেছে, তবুও আমি tarকমান্ডটি ব্যবহার করতে পছন্দ করি । এটি আরও নমনীয়তা সরবরাহ করে - ফাইলের নামের ধরণগুলির জন্য (উভয় অন্তর্ভুক্ত এবং বাদ দেওয়া ), সিমলিংক নিয়ন্ত্রণ, ফাইল অনুমতি সংরক্ষণ করে allows Android 6.0 যেহেতু আপনি একটি অন্তর্নির্মিত ব্যবহার করতে পারেন। এর আগে আপনার তৃতীয় পক্ষের সরঞ্জামগুলি ব্যবহার করতে হয়েছিল busybox:
adb exec-out tar c sdcard/amazonmp3 > amazon.tar
/আপনার পথে অগ্রণীকে বাদ দিতে ভুলবেন না ।
আমি এটি উইন্ডোজ বাক্সগুলির জন্য তৈরি করেছি, ফাইল সিস্টেমটি মাউন্ট না করে ওয়াইল্ডকার্ড ব্যবহার করে ফাইল স্থানান্তর করা খুব দরকারী। আপনি এই স্ক্রিপ্টটি আপনার enভির কোথাও অন্তর্ভুক্ত করতে পারেন।
adbpull.bat
@echo off
setlocal enabledelayedexpansion
if %1.==. (
echo Wilcard parameter is required.
goto end
)
for /F "tokens=* USEBACKQ" %%F in (`adb shell ls %1`) do (
set text=%%F
set mfile=!text:~0,-1!
adb pull "!mfile!"
)
:end
endlocal
উদাহরণ:
adbpull /sdcard/DCIM/Camera/IMG_2016*
আপনি লিনাক্স বা ম্যাক ব্যবহার করে থাকলে অ্যান্ড্রয়েড ডিবাগ ব্রিজের জন্য এডিবিএফএস একটি FUSE ফাইল সিস্টেম
ডিরেক্টরি টান নতুন অ্যান্ড্রয়েড সরঞ্জামগুলিতে উপলব্ধ। (কোন সংস্করণ থেকে এটি যুক্ত করা হয়েছিল তা আমি জানি না, তবে এটি সর্বশেষ 21 এডিটিতে কাজ করছে)
adb pull /sdcard/Robotium-Screenshots
pull: building file list...
pull: /sdcard/Robotium-Screenshots/090313-110415.jpg -> ./090313-110415.jpg
pull: /sdcard/Robotium-Screenshots/090313-110412.jpg -> ./090313-110412.jpg
pull: /sdcard/Robotium-Screenshots/090313-110408.jpg -> ./090313-110408.jpg
pull: /sdcard/Robotium-Screenshots/090313-110406.jpg -> ./090313-110406.jpg
pull: /sdcard/Robotium-Screenshots/090313-110404.jpg -> ./090313-110404.jpg
5 files pulled. 0 files skipped.
61 KB/s (338736 bytes in 5.409s)
ডেভিড এর উত্তর উপর ভিত্তি করে, আমি এটি কিছুটা ভাল বলে মনে করি
adb shell ls /foo | tr -d '\r' | xargs -n1 adb pull
এটি টাইপ করতে একটি অক্ষর কম হওয়া ছাড়াও (বড় চুক্তি) এটি কোনও -rস্থানকে রূপান্তর করে না । এটি একটি উল্লেখযোগ্য পার্থক্য, যেমন আপনি করার চেষ্টা করছেন
adb shell ls /foo/myFile* | tr '\r' ' ' | xargs -i -n1 adb pull {} someDir
বললে ত্রুটি পাবেন
remote object '/foo/myFile1 ' does not exist
পরিবর্তে আপনি এটি করতে পারেন, যা কাজ করবে:
adb shell ls /foo/myFile* | tr -d '\r' | xargs -i -n1 adb pull {} someDir
ওয়াইল্ড কার্ডগুলি আমার ক্ষেত্রে কাজ করে, আমি আমার ডেস্কটপে আমার ভার্চুয়াল ডিভাইসের হোয়াটসঅ্যাপ চিত্র আমদানি করার জন্য নিম্নলিখিত সাধারণ স্ক্রিপ্টটি ব্যবহার করছি
#! /bin/bash
mkdir -p ~/Pictures/Pictures_adb
rm -f ~/Pictures/Pictures_adb/*
cd ~/Pictures/Pictures_adb
adb root
adb shell 'cp /data/media/0/WhatsApp/Media/WhatsApp\ Profile\ Photos/* /sdcard/Pictures/;exit'
adb pull /sdcard/Pictures
mv ~/Pictures/Pictures_adb/Pictures/* ~/Pictures/Pictures_adb/
rmdir ~/Pictures/Pictures_adb/Pictures
cd
অ্যান্ড্রয়েডে, সম্পর্কিত অনুমতি সহ কিছু ফোল্ডার রয়েছে! কিছু ফোল্ডার মূল- বা সিস্টেম ব্যবহারকারীর অন্তর্ভুক্ত।
আপনার ছেলেরা "অ্যাডবি পুল" করার আগে সেই ফাইলগুলি, ফোল্ডারগুলির অনুমতিগুলি পরিবর্তন করা উচিত।
নিম্নলিখিত আদেশগুলি সাহায্য করতে পারে:
adb shell
su
chmod -R 777 target_folder
exit
...
adb pull /.../target_folder/ . (current local folder)
adbতবে ডকগুলি থেকেpullপুরো ডিরেক্টরিটি টানতে ব্যবহার করা যেতে পারে ??? যদি তা হয় এবং এগুলি আপনার নিজের অ্যাপ্লিকেশন দ্বারা উত্পন্ন ফাইলগুলি হয় তবে কেন সেগুলি সাব-ডিরেক্টরিতে লিখতে হবে না/sdcard/mygpsfilesএবং তারপরে ব্যবহার করুনadb pull /sdcard/mygpsfiles। কাজ করবে?